我从Dataserver A导出了一个Oracle格式的表(其中包含越南语文本):
export NLS_LANG=AMERICAN_AMERICA.VN8VN3
exp system/123 BUFFER=64000 FILE=/tmp/export.dmp TABLES=(USERS.AREA) GRANTS=N INDEXES=NO ROWS=Y然后,我尝试将export.dmp导入到数据服务器B:
export NLS_LANG=AMERICAN_AMERICA.VN8VN3
imp system/123 BUFFER=64000 FILE=/tmp/export.dmp indexes=n grants=n constraints=n statistics=none ignore=y full=y但是,字段ID_ISSUE_PLACE是乱码。

这是我在B中操作的屏幕截图。我使用相同的命令在A上导出两个表,但在B上执行imp命令后,结果是这样的!table1中的字段注释是正确的,但table2中的文件名不正确。
如何解决这个问题?

发布于 2016-08-31 20:21:05
假设您使用的是Windows,并且使用的是SQL*Plus,那么只需在命令窗口中使用适当的字符集即可。在我的例子中,我的glogin.sql中有$chcp 1252命令,但是在会话中,您可以使用host chcp 1252执行相同的操作。这会将“代码页”(字符映射)更改为1252,这是Microsoft用于图形程序的字符集的名称。
对于越南语,正确的代码页可能不是1252。请看一下http://www.oracle.com/technetwork/products/globalization/nls-lang-099431.html (并将其加入书签以供将来参考);如果我没看错的话,越南语的正确代码页是1258。
所以:在SQL*Plus控制台输入host chcp 1258,看看它是否有帮助。如果是,请将$chcp 1258添加到您的glogin.sql中。
https://stackoverflow.com/questions/39249204
复制相似问题