Imp 数据后,表字段的comments 中文显示为乱码

现状:我用 imp/exp 导入/导出 数据时发现导入的数据注释全部都是乱码.

环境:exp、imp客户端没设置NLS_LANG环境(或者客户端为其他字符集),而数据库的环境为SIMPLIFIED CHINESE_CHINA.ZHS16GBK 

原因:客户端与服务端字符集不一样,导致在客户端导入数据时,导入的字符时按照客户端来生成,从而引起显示的字符集不一样

解决办法:

1、查询服务端字符集

    1>select userenv('language') from dual;

    或者(以1为主)

    2>在命令行下:show parameter NLS


2、在.bash_profile文件添加如下内容(从服务端查询到的字符集):

    export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK

    export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"(为主)

    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

    注:三个字符集随便选择一个

3、重新导入dmp文件,字符集正常

4、可以通过以下SQL进行查询字符集是否正常

    select 'comment on column '||table_name||'.'||column_name||' is '''||comments||''';' 

from dba_col_comments t where t.owner = 'WEBP2PUSER';  


你可能感兴趣的:(数据库,中文,服务端,客户端,Export)