使用SQL * Loader加载货币符号

时间:2014-01-30 19:18:40

标签: oracle currency sql-loader

我正在尝试使用SQL * Loader加载带货币符号的csv文件。符号'£'被'#'替换,符号'€'被NULL替换。

不确定我是否应该调整控制文件中的某些设置?

以下是NLS_DATABASE_PARAMETERS的值:

NLS_NCHAR_CHARACTERSET = AL16UTF16  
NLS_CHARACTERSET = AL32UTF8

任何指针都会有很大的帮助。

csv文件的摘录 -

id,currency
1234,£
5678,€

货币列的数据类型为NVARCHAR2(10)。

这是ctl文件 -

OPTIONS(skip=1)
LOAD DATA
TRUNCATE
INTO TABLE schema_name.table_name
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
filler1 filler,
filler2 filler,
Id INTEGER EXTERNAL,
Currency CHAR "TRIM(:Currency)"
)

2 个答案:

答案 0 :(得分:1)

我猜这是一个字符集问题。

您是否将sqlloader文件的字符集设置为UTF8?

CHARACTERSET UTF8

另外,文件本身是UTF8编码的吗?

答案 1 :(得分:1)

感谢贾斯汀和帕特里克的指针!

该文件不是UTF-8编码的。我将文件转换为UTF-8编码,它工作正常!

对于那些不知道如何使用Notepad ++转换文件编码的人(像我一样,我刚刚学会了如何操作): 在Notepad ++中创建一个新文件 - >转到编码 - >以UTF-8编码 - >复制粘贴内容 - >将文件另存为.csv