【发布时间】:2015-08-11 07:07:32
【问题描述】:
我正在使用 sqlldr 加载一个 csv 文件。
该文件包含插入到 VARCHAR2 列中的符号 "€"。
加载后,数据库显示'¿' 而不是欧元符号。
我在加载过程中在控制文件中指定了字符集:
LOAD DATA
CHARACTERSET WE8MSWIN1252
我在Solaris 机器上运行所有这些,顺便说一句,它无法显示“€”符号,我给了我一个'.',而不是当我按下键来获取€。
我们将数据用于 BI 目的,因此我们必须保留 varchar2 列,即使将其类型更改为 nvarchar2 会正确插入 € 符号。
您能否针对该问题提出任何其他解决方案?
当我在机器上运行语言环境命令时,我得到:
LANG=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
我的 NLS 数据库参数是:
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET WE8DEC
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
我已尝试设置 NLS_LANG 变量,但似乎没有任何效果。 问候。
【问题讨论】:
标签: oracle oracle11g sqlplus sql-loader dbms-output