打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【求解】Oracle11g的国家字符集问题 - Oracle开发 - ITPUB论坛 - IT168旗下专业技术社区
求解】Oracle11g的国家字符集问题

今天在11g上建了个测试库,选择的国家字符集和数据库字符集都是默认的,如下图

   但是建好库后,我用SQL语句查询了下,发现明明是UTF-8啊,怎么会又变成了GBK了呢,求解?

   如果不是UTF-8,好像代码拿出数据或插入数据都要转换一下,郁闷

   见图




fan0124 上传了这个附件:
2010-3-16 11:10
00903.jpg (1.54 MB)
 

2010-3-16 11:10
国家字符集.jpg (740.71 KB)
 

__________________
追求而不奢求,知足而不满足
只看该作者   
chwp
初级会员



精华贴数 0
个人空间 0
技术积分 254 (9440)
社区积分 11 (13334)
注册日期 2001-12-28
论坛徽章:4
  
      

 

发表于 2010-3-16 11:58 
默认是GBK啊


__________________
ss
只看该作者   
fan0124
灵猫


来自 杭州
精华贴数 1
个人空间 0
技术积分 4005 (491)
社区积分 0 (952999)
注册日期 2009-8-21
论坛徽章:6
      

 

发表于 2010-3-16 13:04 
开发环境要求是UTF-8,我又重新建了次库,选择的是UTF-8,但是问题来了,用PL/SQL连的时候,说我的客户端字符集与服务器端不一样了

客户端windows的,默认是GBK的,我在注册表里改成UTF-8了,可是再连接就报ORA-12705错误了

问题:怎么把我的客户端机器的字符集也改成UTF-8呢


__________________
追求而不奢求,知足而不满足
只看该作者   
chwp
初级会员



精华贴数 0
个人空间 0
技术积分 254 (9440)
社区积分 11 (13334)
注册日期 2001-12-28
论坛徽章:4
  
      

 

发表于 2010-3-16 14:06 
ORA-12705: Cannot access NLS data files or invalid environment specified
Cause: Either an attempt was made to issue an ALTER SESSION command with
an invalid NLS parameter or value; or the environment variable(s) NLS_LANG,
ORA_NLSxx, or ORACLE_HOME was incorrectly specified, therefore the NLS
data files cannot be located.
Action: Check the syntax of the ALTER SESSION command and the NLS
parameter, correct the syntax and retry the statement, or specify the correct
directory path/values in the environment variables.


__________________
ss
只看该作者   
fan0124
灵猫


来自 杭州
精华贴数 1
个人空间 0
技术积分 4005 (491)
社区积分 0 (952999)
注册日期 2009-8-21
论坛徽章:6
      

 

发表于 2010-3-16 14:16 
把注册表里的值改成了UTF-8的,如图

这个是我客户端的

改了后,打开PL/SQL,发现如果遇到什么错误,比如ORA之类的错误,错误信息就是乱码

怎么弄呢




fan0124 上传了这个附件:
2010-3-16 14:16
字符集改成UTF8的.jpg (1.69 MB)
 

__________________
追求而不奢求,知足而不满足
只看该作者   
chwp
初级会员



精华贴数 0
个人空间 0
技术积分 254 (9440)
社区积分 11 (13334)
注册日期 2001-12-28
论坛徽章:4
  
      

 

发表于 2010-3-16 14:37 

__________________
ss
只看该作者   
zergduan
SE-RequieM


来自 Beijing Massage Center
精华贴数 0
个人空间 441
技术积分 16616 (93)
社区积分 67 (5686)
注册日期 2005-5-16
论坛徽章:59
   
      

 

发表于 2010-3-16 14:44 


QUOTE:
原帖由 fan0124 于 2010-3-16 13:04 发表

开发环境要求是UTF-8,我又重新建了次库,选择的是UTF-8,但是问题来了,用PL/SQL连的时候,说我的客户端字符集与服务器端不一样了

客户端windows的,默认是GBK的,我在注册表里改成UTF-8了,可是再连接就报ORA-12705错误了

问题:怎么把我的客户端机器的字符集也改成UTF-8呢

我都想投诉PL/SQL Developer ,那么明显恶意忽悠用户!

没事儿, 用警告误导用户修改NLS_LANG,结果大部分人都上当了(包括楼主),明明在简体中文windows上的client,却把NLS_LANG修改成al32utf8!
这样将导致除了pl/sql developer以外的 client软件(包括sqlplus),输入中文的时候都会出现错误,就算正好2位文输入成功了,也会导致数据库总的信息丢失!

而PL/SQL developer其实是不受NLS_LANG控制的,你被他忽悠了以后,只有它可以正确的输入中文了~ 真无耻~


__________________
只看该作者   
fan0124
灵猫


来自 杭州
精华贴数 1
个人空间 0
技术积分 4005 (491)
社区积分 0 (952999)
注册日期 2009-8-21
论坛徽章:6
      

 

发表于 2010-3-16 15:18 


QUOTE:
原帖由 zergduan 于 2010-3-16 14:44 发表



我都想投诉PL/SQL Developer ,那么明显恶意忽悠用户!

没事儿, 用警告误导用户修改NLS_LANG,结果大部分人都上当了(包括楼主),明明在简体中文windows上的client,却把NLS_LANG修改成al32utf8!
这样将导致除了pl/sql developer以外的 client软件(包括sqlplus),输入中文的时候都会出现错误,就算正好2位文输入成功了,也会导致数据库总的信息丢失!

而PL/SQL developer其实是不受NLS_LANG控制的,你被他忽悠了以后,只有它可以正确的输入中文了~ 真无耻~

你的意思是我就不用改客户端Windows下的注册表中的NLS_LANG值了是吗

我改成AL32UTF8后,只要出了错误信息,就是这样的乱码情况,见图1

如果我保持原客户端的NLS_LANG不变(也就是保持ALS16GBK这样的),那就是每次登陆PL/SQL,出现个这样的提示信息,见图2

就这样让PL/SQL提示,不用管这个提示信息是吗?不会影响插入数据啊,查询啊,数据信息完整这样的吧?主要是插入中文信息啊,这个没什么影响的吧




fan0124 上传了这个附件:
2010-3-16 15:18
1.jpg (917.22 KB)
 

2010-3-16 15:18
字符集不同.jpg (537.05 KB)
 

__________________
追求而不奢求,知足而不满足
只看该作者   
zergduan
SE-RequieM


来自 Beijing Massage Center
精华贴数 0
个人空间 441
技术积分 16616 (93)
社区积分 67 (5686)
注册日期 2005-5-16
论坛徽章:59
   
      

 

发表于 2010-3-16 15:32 
你那个报错的乱码和字符集没关系~ 看看你的控制面板中的设置~

不要理会 pl / sql 那个骗人的警告~

nls_lang的设置是由client决定的 ,如果你在cmd下 输入chcp的结果是936,nls_lang就应该是zhs16gbk


__________________
只看该作者   
zergduan
SE-RequieM


来自 Beijing Massage Center
精华贴数 0
个人空间 441
技术积分 16616 (93)
社区积分 67 (5686)
注册日期 2005-5-16
论坛徽章:59
   
      

 

发表于 2010-3-16 15:34 
如果你使用pl/sql developer来输入中文,修改不修改nls_lang都没任何影响~ 如果你被那个警告给忽悠了,把nls_lang给修改成al32utf8了,那么除了pl/sql developer可以输入中文外,其他的工具都不能正常输入中文了~ 这正是pl/sql develper的阴险之处~


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
设置ORACLE客户端字符集
Oracle 10g绿色客户端 plus PL/SQL Developer-搭建方便的Oracle客户端使用环境
使用oracle instant client 配置pl/sql,免安装oracle客户端。
深入分析Oracle字符集(转载)
navicat连接oracle的错误:ora-12737:instant client l...
oracle服务端的字符集与客户端的字符集不一致
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服