我需要将load data
一些 perl 生成的文件导入 oracle 数据库。Perl 脚本获取网页并写入 csv 文件。
这是一个简化的脚本:
use File::Slurp;
my $c= ( $user && $passwd )
? get("$protocol://$user:$passwd\@$url")
: get("$protocol://$url");
write_file("$VZ_GET/$FileTS.$typ.csv",$c);
这是来自网页的示例行:
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
网页内容保存在 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
.
我不知道如何解决它。