上个帖子可能没把问题描述清楚,重开一贴,能帮忙解决问题的 200分都给他。
系统环境:
系统类型:IBM AIX
oracle version :
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for IBM/AIX RISC System/6000: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production数据库编码:
SQL> select userenv('language') from dual;USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
AIX系统环境变量:
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK导致问题过程:
有两台AIX服务器,一开始 两台服务器上的数据库均没有乱码问题,我将服务器B中的数据库exp了一份,然后到服务器A上做imp,后发现服务器A中 所有表的comment,字段的说明中 中文均成乱码????,于是怀疑服务器B中中文编码设置可能与A中不一致(B机器我现在拿不到它的参数设置)。于是又将A之前的备份文件做imp,但comment依旧是乱码且数据记录中中文正常。大概就是这样,急求高人解答,不胜感激。
 

解决方案 »

  1.   


    肯定是客户端字符集不一致了,你导入的时候使用的是客户端的字符集参考http://1985wanggang.blog.163.com/blog/static/7763833201072743239973/
      

  2.   


    嗯 我也看到了这个帖子,
    $ export NLS_LANG=American_America.ZHS16GBK
    $ env
    _=/usr/bin/env
    LANG=en_US
    LOGIN=oracle
    PATH=/oracle/db/product/11.2/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/home/oracle/bin:/usr/bin/X11:/sbin:.
    NLS_LANG=American_America.ZHS16GBK
    EXTENDED_HISTORY=ON
    ORACLE_BASE=/oracle/db
    LC__FASTMSG=true
    LOGNAME=oracle
    MAIL=/usr/spool/mail/oracle
    ORACLE_SID=ceps
    LOCPATH=/usr/lib/nls/loc
    USER=oracle
    AUTHSTATE=compat
    SHELL=/usr/bin/ksh
    ODMDIR=/etc/objrepos
    HOME=/home/oracle
    TERM=vt220
    MAILMSG=[YOU HAVE NEW MAIL]
    ORACLE_HOME=/oracle/db/product/11.2
    PWD=/home/oracle
    TZ=CST6CDT
    A__z=! LOGNAME
    NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L/%N.cat
    $ imp PEPP_BFS/PEPP_BFS@ceps file =PEPP_BFS_20110615.dmp
    Import: Release 11.2.0.2.0 - Production on Thu Jun 30 11:21:52 2011
    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
    With the Partitioning, Automatic Storage Management and Data Mining options
    Export file created by EXPORT:V11.02.00 via conventional path
    import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
    import server uses AL32UTF8 character set (possible charset conversion)
    export client uses US7ASCII character set (possible charset conversion)
    以上是我的系统环境变量以及做imp是的log.
    我看了下我导入库的字符集
    SQL> select userenv('language') from dual;USERENV('LANGUAGE')
    --------------------------------------------------------------------------------
    AMERICAN_AMERICA.AL32UTF8于是尝试将NLS_LANG 设置为 AMERICAN_AMERICA.AL32UTF8。但是问题依旧。我现在的问题是 不能再重新设置NLS_LANG做导出,只能用现有的dmp文件做导入,希望得到的解决是通过修改一些设置让现有的dmp文件导入后能正确显示comment.谢谢