insert的中文字段怎么在oracle中显示乱码?

yuanbo_ 2003-09-17 01:14:11
insert的中文字段怎么在oracle中显示乱码?
...全文
329 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanbo_ 2003-09-18
  • 打赏
  • 举报
回复
多谢beckhambobo(beckham)的补充。d:)
beckhambobo 2003-09-17
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=140988
yuanbo_ 2003-09-17
  • 打赏
  • 举报
回复
经过大家的帮助我终于搞好了。:)
现在总结如下:
1.设置系统变量NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"; (最好是用oracle用户登陆服务器,修改/home/oracle/.bash_profile文件).
2.在客户端(Windows)注册表中搜索NLS_LANG,将它也改为"SIMPLIFIED CHINESE_CHINA.ZHS16GBK"(没有引号).
3.修改sys.props$表:
NLS_CHARACTERSET = 'ZHS16GBK'
NLS_LANGUAGE = 'SIMPLIFIED CHINESE'
NLS_TERRITORY = 'CHINA'
NLS_NCHAR_CHARACTERSET = 'ZHS16GBK'
4. ok 了;:)
yuanbo_ 2003-09-17
  • 打赏
  • 举报
回复
我将props$的NLS_CHARACTERSET改成ZHS16GBK,并把注册表中的NLS_LANG全改成SIMPLIFIED CHINESE_CHINA.ZHS16GBK,可是,现在连sqlplus也不显示中文了。我的服务器的环境变量NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK,这个有影响吗?
Tom_Tan 2003-09-17
  • 打赏
  • 举报
回复
服务器和客户机的字符集都应该采用ZHS16GBK
yuanbo_ 2003-09-17
  • 打赏
  • 举报
回复
我用sqlplus可以显示中文字段,但是sqlplus的提示去变成了乱码。DBA Stadio依然显示不正常,我想还是要修改服务器端的字符基,但是服务器端的props$的NLS_CHARACTERSET早就被我改成ZHS16CGB231280了,为何select userenv('LANGUAGE') from dual;还是SIMPLIFIED CHINESE_CHINA.US7ASCII,用的还是"US7ASCII"呢,难道没改对地方?
yuanbo_ 2003-09-17
  • 打赏
  • 举报
回复
SQL> select userenv('LANGUAGE') from dual;

USERENV('LANGUAGE')
---------------------------------------------
SIMPLIFIED CHINESE_CHINA.US7ASCII
然后,我在注册表中查找NLS_LANG,将它们的制值都改成SIMPLIFIED CHINESE_CHINA.US7ASCII。再insert一条,可是显示的中文还是???.

这该如何是好?
boypoo 2003-09-17
  • 打赏
  • 举报
回复
你在服务器上执行下面的语句:
select userenv('LANGUAGE') from dual;

将结果贴到客户端注册表里面(记得所有的该贴的地方都贴一遍)
佣工7001 2003-09-17
  • 打赏
  • 举报
回复
服务器端和客户端要完全一致!
yuanbo_ 2003-09-17
  • 打赏
  • 举报
回复
服务器端是这样的
NLS_CHARACTERSET
ZHS16GBK

我将注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE的NLS_LANG改成了SIMPLIFIED CHINESE_CHINA.ZHS16GBK,但是还是不成.
hdkkk 2003-09-17
  • 打赏
  • 举报
回复
客户端的字符集与服务器短的不一致
在注册表修改

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧