我正在将db从postgres迁移到oracle.I使用以下命令创建csv文件:
\将ttt复制到'C:\test\ttt.csv‘character ',’报头编码' UTF8‘引号为’‘;然后使用oracle加载程序将数据放入oracle表中。这一切都可以,但在某种描述中,这个字符不在原始DB中。db postgres的编码是UTF8,我在一台窗口机器上。谢谢。
发布于 2017-07-28 19:03:15
在启动sqlloader之前,请运行
chcp 65001
set NLS_LANG=.AL32UTF8 chcp 65001将cmd.exe的代码页设置为UTF-8 (由sql加载程序和sqlplus继承)set NLS_LANG=.AL32UTF8,您可以告诉Oracle数据库“客户端使用UTF-8”。如果没有这些命令,就会出现这种情况(由于默认情况)。
chcp 850
set NLS_LANG=AMERICAN_AMERICA.US7ASCII 也许您的PC上有代码页437而不是850,这取决于您的PC是美国还是欧洲,参见国家语言支持API参考,OEM codepage栏
您也可以在PC设置中将NLS_LANG设置为环境变量,也可以在HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG ( 32位)的Registry (32位)中定义它。HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\NLS_LANG
您还可以更改cmd.ext持久性的代码页,请参阅https://stackoverflow.com/a/33475373/3027266。
有关NLS_LANG的详细信息,请参阅https://stackoverflow.com/a/33790600/3027266
https://stackoverflow.com/questions/45376380
复制相似问题