load data
いくつかの perl で生成されたファイルを oracle データベースにインポートする必要があります。Perl スクリプトは Web ページを取得し、csv ファイルを書き込みます。
ここに簡略化されたスクリプトがあります:
use File::Slurp;
my $c= ( $user && $passwd )
? get("$protocol://$user:$passwd\@$url")
: get("$protocol://$url");
write_file("$VZ_GET/$FileTS.$typ.csv",$c);
Web ページのサンプル行を次に示します。
5052;97;Jan;Ihrfelt 5053;97;Jari;Honko 5121;97;Katja;Keitaanniemi 5302;97;Ola;Södermark 5421;97;Sven;Sköld 5609;97;Peter;Näslund
Web ページのコンテンツは var $c に保存されます。
csv ファイルのサンプル行は次のとおりです。
5053;97;Jari;Honko
ここにロードコマンドがあります:
LOAD DATA
INTO TABLE LIQA
TRUNCATE
FIELDS TERMINATED BY ";"
(
LIQA_ANALYST_ID,
LIQA_FIRM_ID,
LIQA_ANALYST_FIRST_NAME,
LIQA_ANALYST_LAST_NAME,
LIQA_TS_INSERT DATE 'YYYYMMDDHH24MISS'
)
コマンドは をSELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET';
返しますAL32UTF8
。
生成された csv ファイルは として認識され UTF-8 Unicode text
ます。
とにかく、ドイツ語の文字をインポートできません。csv ファイルでは、それらはまだ正しいです。しかし、データベースではそうではありません。
また、次のように $c を変換しようとしました。
$c = encode("iso-8859-1", $c);
生成されたcsvファイルはそのまま認識され UTF-8 Unicode text
ます。
どうすれば修正できるかわかりません。