Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从postgres迁移到oracle(Ansi)中的奇怪字符_Oracle_Postgresql_Csv_Encoding_Character Encoding - Fatal编程技术网

从postgres迁移到oracle(Ansi)中的奇怪字符

从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

我正在将数据库从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    
set NLS_LANG=.AL32UTF8 
  • chcp 65001
    cmd.exe的代码页设置为
    UTF-8
    (由sqlloader和sqlplus继承)
  • 使用
    set NLS_LANG=.AL32UTF8
    告诉Oracle数据库“客户端使用UTF-8”
如果没有这些命令,就会出现这种情况(由于默认设置)

也许您的电脑上的代码页是437而不是850,这取决于您的电脑是美国还是欧洲,请参阅
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