win8系统,plsqldev9,Oracle11g 64位,Oracle客户端是 instantclient_11_2。
注册表:NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK;
环境变量:NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK;LANG=zh_CN.GBK; NLS_CHARACTERSET=ZHS16GBK;
sql>select userenv('language') from dual; 查询结果是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
sql>SELECT * FROM v$nls_parameters;查询结果是:NLS_LANGUAGE=SIMPLIFIED CHINESE;
NLS_CHARACTERSET=ZHS16GBK;
sql>select nls_charset_name(to_number('0354','xxxx')) from dual;查询结果是:ZHS16GBK;
数据库服务器字符集:sql>SELECT * FROM nls_database_parameters;查询结果是:NLS_LANGUAGE=AMERICAN;NLS_CHARACTERSET=ZHS16GBK;
客户端字符集环境:sql>SELECT * FROM nls_instance_parameters;查询结果是:NLS_LANGUAGE=AMERICAN;NLS_TERRITORY=AMERICA;
会话字符集环境:sql>SELECT * FROM nls_session_parameters;查询结果是:NLS_LANGUAGE=SIMPLIFIED CHINESE;NLS_DATE_LANGUAGE=SIMPLIFIED CHINESE;
目前的情况就是这样的,中文都是??????,请各位大侠指教一下该怎么改?
------解决方案--------------------
往表中新插入一行中文再查询,看看有没有问题
为?的这些数据可能入库的时候就已经是乱码了