我需要将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
。
我不知道如何解决它。
答案 0 :(得分:0)
我已经解决了它:
$c = decode( 'utf-8', $c );
$c = encode( 'iso-8859-1' , $c );