使用 imp/exp 导入/导出 把8I迁移到10G数据时发现导入的数据注释全部都是乱码.
原因是导出的时候客户端字符集没有设置,或者设置不对。修改成DB的就OK了
查了一下字符集(select userenv('language') from dual;)
导出库的字符集是 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
导入库的字符集是 AMERICAN_AMERICA.ZHS16GBK
导入客户端的字符集是 AMERICAN_AMERICA.ZHS16GBK
-----------------------
后导出端的NLS_LANG,发现没有这个变量,我是用Oracle用户导出的.所以没有设置.没有 NLS_LANG
修改.bash_profile 加上 NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
source .bash_profile
重新导出.
再修改导入的客户端为NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
导入的数据表的注释正常
相关阅读:
通过expdp&impdp把11g的数据迁移到10g平台的要点
Oracle Data Pump使用范例及部分注意事项(expdp/impdp)
Oracle datapump expdp/impdp 导入导出数据库时hang住
expdp/impdp做Oracle 10g 到11g的数据迁移