在服务器端的nls_database_parameters表中
nls_nchar_characterset已经被设置成了ZHS16GBK
可为什么显示中文还是??
谢谢

解决方案 »

  1.   

    查看ORACLE数据库字符集:
    select   parameter,value   from   nls_database_parameters   where   parameter   like   'NLS_CHARACTERSET';
    设置客户端字符集:
    设置环境变量:NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    或者可以:SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280,AMERICAN_AMERICA.ZHS16GBK
    select * from nls_database_parameters 可以查询数据库的各种与国家、语言有关的参数设置
      

  2.   

    是WINDOWS吗
    如果是的话在注册表里把相应客户端程序的NLS_LANG改为中文
      

  3.   

    客户端和服务端的字符集要设置的一样。查看服务端的字符集
    SQL> select userenv(’language’) from dual;USERENV(’LANGUAGE’)—————————————————-AMERICAN_AMERICA.WE8ISO8859P1
      

  4.   

    我windows的客户端中 设置好了nls_lang,显示中文、插入中文表名等都没问题。
    但在linux服务端,字符集是支持中文的ZHS16GBK。在服务器端直接sqlplus,就无法显示中文。
    关于中文的一切操作都不可以。非常的奇怪。
    还有一点比较让我迷惑
    在客户端执行带有中文的.sql脚本也不可以。但是手动打上去 比如create table 表1(id integer);就可以执行成功。
      

  5.   

    这种问题个人觉得应该和linux系统有关,如果修改为英文可以是正常显示。
    建议你在linux下执行其他操作,看看本身操作系统是不是有中文乱码的问题
      

  6.   


    谢谢各位的回复
    Linux下其他中文操作并无问题~~
      

  7.   

    不是中文操作,是在shell下的中文命令提示
      

  8.   


    对不起 我描述不清
    shell下中文提示是没问题的
      

  9.   

    更改注册表中的相关值:
    展开 HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE 后,点击 KEY_OraDb10g_home1,修改右侧的NLS_LANG的值为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK即可。
      

  10.   


    客户端所在的windows配置后是可以正常显示中文的
    但是直接在linux(服务端)上sqlplus连上本地后 关于中文的一切操作都不可以
    SQL> select userenv(’language’) from dual; 的结果是
    AMERICAN_AMERICA.ZHS16GBK
      

  11.   


    可能是你这个服务器上的shell里没有设置NLS_LANG和服务器里的字符集一样。你设置一下NLS_LANG后export一把,再试试sqlplus