我在linux下打开sqlplus 然后把建表的脚本贴到里面去执行,执行的过程中显示是正确的都是中文,但是执行完毕后,查询数据库的数据结果发现刚才插入的数据都变成方框了?请问这个问题怎么解决?

解决方案 »

  1.   

    建表脚本还有中文? 中文字段名? 还是中文注释? 还是insert语句包含中文。设置一下环境变量:
    export NLS_LANG=语言_地区.字符集这三个部分可从nls_database_parameter视图中得到: select * from nls_database_parameters where parameter in ('NLS_LANGUAGE', 'NLS_TERRITORY','NLS_CHARACTERSET'); 如: 
    1 NLS_LANGUAGE AMERICAN 
    2 NLS_TERRITORY AMERICA 
    3 NLS_CHARACTERSET ZHS16GBK 那么NLS_LANG就设置为:AMERICAN.AMERICA_ZHS16GBK 
      

  2.   

    是在客户机做的么,如果是检查客户机器字符集和服务器保持一致,linux就如上window就修改注册表的值。具体那个值,可以用NLS_LANG搜索一下注册表。或者google,baidu一下。
      

  3.   

    修改Linux客户端的字符集,改环境变量即可。export NLS_LANG=AMERICAN_AMERICA.AL32UTF8