从postgres迁移到oracle(Ansi)中的奇怪字符
我正在将数据库从postgres迁移到oracle。我使用以下命令创建csv文件: \将ttt复制到“C:\test\ttt.csv”csv DELIMITER,“标题编码为“UTF8”“quote as”“”;然后使用oracle sql loader将数据放入oracle表中。 这一切都没问题,但我在一些描述中有这个角色,它不在原始数据库中。 db postgres的编码是UTF8,我在一台窗口机器上。 谢谢大家。从postgres迁移到oracle(Ansi)中的奇怪字符,oracle,postgresql,csv,encoding,character-encoding,Oracle,Postgresql,Csv,Encoding,Character Encoding,我正在将数据库从postgres迁移到oracle。我使用以下命令创建csv文件: \将ttt复制到“C:\test\ttt.csv”csv DELIMITER,“标题编码为“UTF8”“quote as”“”;然后使用oracle sql loader将数据放入oracle表中。 这一切都没问题,但我在一些描述中有这个角色,它不在原始数据库中。 db postgres的编码是UTF8,我在一台窗口机器上。 谢谢大家。 Gian Piero在开始运行sqlloader之前 chcp 65001
Gian Piero在开始运行sqlloader之前
chcp 65001
set NLS_LANG=.AL32UTF8
将chcp 65001
cmd.exe的代码页设置为
(由sqlloader和sqlplus继承)UTF-8
- 使用
告诉Oracle数据库“客户端使用UTF-8”set NLS_LANG=.AL32UTF8
OEM代码页
您可以在PC设置中将NLS\u LANG
设置为环境变量,也可以在注册表中分别在HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY\u%ORACLE\u HOME\u NAME%\NLS\u LANG
(32位)中定义它
您还可以更改cmd.ext
persistent的代码页,请参阅
有关NLS_-LANG的详细信息,请在启动sqlloader之前查看运行
set NLS_-LANG=.AL32UTF8
和chcp 65001
Ok。它可以工作。谢谢。两个问题:1)您理解为什么会出现此问题吗?2)我的sql loader由java程序触发。您认为从wh的命令行运行此命令足够吗我知道你会启动java,还是我应该从程序本身运行它?不管怎样,我现在正在做测试,并提供了更多信息作为答案。
chcp 850
set NLS_LANG=AMERICAN_AMERICA.US7ASCII