日期:2014-05-17  浏览次数:20871 次

pl/sql 有些字段是乱码,有些字段不是乱码
情况这样的,查询出有些字段是乱码,有些字段正常

然后我本地注册表中的:nls_lang 值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK

以下是我的一些情况细节
数据库:
select * from nls_database_parameters
 where PARAMETER ='NLS_LANGUAGE' or PARAMETER ='NLS_CHARACTERSET';
执行结果:2列

NLS_LANGUAGE         AMERICAN
NLS_CHARACTERSET ZHS16GBK


客户端:
 select * from nls_instance_parameters 
 where PARAMETER ='NLS_LANGUAGE' or PARAMETER ='NLS_CHARACTERSET';
执行结果:一列
NLS_LANGUAGE AMERICAN

会话:
 select * from nls_session_parameters 
where PARAMETER ='NLS_LANGUAGE' or PARAMETER ='NLS_CHARACTERSET';
执行结果:一列
NLS_LANGUAGE AMERICAN

然后,根据网上一些人的说法,我将环境变更,将NLS_LANG的值设置:AMERICAN_AMERICA.ZHS16GBK

另外,将注册表的也改成:AMERICAN_AMERICA.ZHS16GBK 发现这样不行

然后,我将环境变更与注册表改成:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 也不行

只改注册表不行(无论是哪个值),只改环境变更不行(无论是哪个值)

我确定在改后每次都重新启动了pl/sql

各位老兄,我到底应该怎么改呢,当前数据库服务器那边的字符是AMERICAN_AMERICA.ZHS16GBK,
而我本地装了数据库后初始值是SIMPLIFIED CHINESE_CHINA.ZHS16GBK

我本机是64位的oracle

好奇怪,一张表里的A字段中文是正常的,B字段的中文却是乱码







pl/sql中文乱码

------解决方案--------------------
只是 pl/sql工具 查出会乱码,sqlplus查出来不会么?
------解决方案--------------------
感觉是PL/SQL的问题。。。