我用的是oracle9i, 用select userenv('LANGUAGE') from dual 看到的编码是"SIMPLIFIED CHINESE_CHINA.US7ASCII" ,
在注册表中“NLS_LANG”也设置为相同的编码的,但是用往里面插入中文数据后,查出来的都是“?”, 在命令窗口,pl/sql等工具都是如此,
请问这种情况该如何解决?

解决方案 »

  1.   

    HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOME0下,
    如一般的简体中文
    nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK2:查看数据库当前字符集参数设置SQL> select userenv('language') from dual;USERENV('LANGUAGE')
    ----------------------------------------------------
    SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    查询结果是一样的?
      

  2.   

    查询的结果是一样的,oracle就装在我自己的机器上
      

  3.   

    如果在注册表跟select userenv('LANGUAGE') from dual 都是一样的 我觉得是系统的原因
    我也遇到过这样的原因 以前系统是ghost的系统 后面重做了个系统后就好了 深度的系统
      

  4.   

    由于种种原因(例如多次安装oracle或客户端)NLS_LANG在注册表中有多个,你是否把每个nls都改了呢
      

  5.   

    问题解决了,原来我只修改了 oracle下的NLS_LANG ,没修改到\Oracle\HOME0下的NLS_LANG ,
    请问这2个有什么区别?
      

  6.   


    -- 也可以在进SQL*Plus 前
    SET NLS_LANG-- 设置一下!