一开始很奇怪中文都成了一个个长方形的格子,感觉到应该是字符编码的问题,但对oracle也不熟啊。所以度娘找啊找。发觉我的服务端字符集与客户端字符集不同。
解决方法记录一下以备后用:
ORACLE有三方面的字符集,一是oracel server端的字符集,二是oracle client端的字符集;三是dmp文件的字符集。
.查看oracel server端的字符集
select userenv('language') from dual;
1 SIMPLIFIED CHINESE_CHINA.AL32UTF8
服务器端改字符集(百度吧,呵呵,我是新建了一个库选定了ZHS16GBK)
.查看oracel client端的字符集
是注册表里面相应OracleHome的NLS_LANG。还可以在dos窗口里面自己设置,比如:
set nls_lang=AMERICAN_AMERICA.ZHS16GBK
这样就只影响这个窗口里面的环境变量。
存在HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/NLS_LANG中
------
环境变量里指定使用的字符集 NLS_LANG: SIMPLIFIED CHINESE_CHINA.ZHS16GBK