检查注册表hkey_local_machine\software\oracle目录中的nls_lang的键值,应该和查询 
select 
    tab1.aa||'_'||tab2.bb||'.'||tab3.cc 
from 
    (select VALUE$ aa from sys.props$ where name='NLS_LANGUAGE')tab1,
    (select VALUE$ bb from sys.props$ where name='NLS_ISO_CURRENCY')tab2,
    (select VALUE$ cc from sys.props$ where name='NLS_CHARACTERSET')tab3
得到的值一致.

解决方案 »

  1.   

    在SQL/PLUS下运行INSERT语句看有什么错误
      

  2.   

    <1>   注册表是: SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    <2>用select 
        tab1.aa||'_'||tab2.bb||'.'||tab3.cc 
    from 
        (select VALUE$ aa from sys.props$ where name='NLS_LANGUAGE')tab1,
        (select VALUE$ bb from sys.props$ where name='NLS_ISO_CURRENCY')tab2,
        (select VALUE$ cc from sys.props$ where name='NLS_CHARACTERSET')tab3得到的是
      AMERICAN_AMERICA.ZHS16GBK,不知下一步怎么作
      

  3.   

    这样应该是可以的的. 有乱码可能是以前留下来的吧? 把注册表中的NLS_LANG也设置为AMERICAN_AMERICA.ZHS16GBK, 然后插入一条中文信息, 然后再执行查询看看. 应该没有问题,   如果你说的客户端是WEB开发的程序的话, 可能在WEB中指定字.集,