免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3343 | 回复: 2
打印 上一主题 下一主题

oracle10g 字符集修改 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-29 23:16 |只看该作者 |倒序浏览
各位朋友,我在给用户调试oracle的时候,出现了乱码问题,请各位高手分析一下,怎样修改字符集
在oracle安装的时候,主机环境为英语环境,在建库的时候,选择了zhs16gbk字符集,其他都是默认,但是在服务器端上,新建一个表,插入一个值,显示为??
如下:
$sqlplus /nolog
SQL>connect /as sysdba
SQL> create table a(a varchar2(100));
SQL> insert into a values(' 个');
SQL> commit;
SQL> select *from a;

A
--------------------
??
刚开始以为是ibm的中文环境问题,于是通过smit-->;system environment-->;system primary language,我将其全设为IBM-eucCN,
重新启动后,出现中文界面,默认语言环境为中文,但是重复数据库操作, 新插入了一个汉字,结果显示为:
SQL> select *from a;

A
--------------------
??
??
这就不知道是什么原因,找了一下资料,说可能是oracle字符集不一致,于是输入了如下命令:
SQL>select userenv(‘language’) from dual;   
USERENV('LANGUAGE')                                                   
------------------------------------------------------                        
AMERICAN _ AMERICA. ZHS16GBK

说明字符集已经是ZHS16GBK了,改字符集基本上已经没作用了,而查询了一下其他的资料,
SQL>select userenv(‘language’) from dual;   
USERENV('LANGUAGE')                                                   
------------------------------------------------------                        
SIMPLIFIED CHINESE_CHINA.ZHS16GBK

我怀疑是不是语言设置得不对,导致出现??,但是怎么将AMERICAN _ AMERICA. ZHS16GBK改为SIMPLIFIED CHINESE_CHINA.ZHS16GBK啊,
知道的朋友麻烦讲一下,先谢谢各位了!

论坛徽章:
0
2 [报告]
发表于 2008-10-30 15:43 |只看该作者
找个中文客户端连接测试是否可以显示,数据库应该没有问题

论坛徽章:
0
3 [报告]
发表于 2008-10-30 22:43 |只看该作者
问题终于解决了,原来是.profile文件里没有指明语言,在其中加入:
NLS_LANG=AMERICAN_AMERCIA.ZHS16GBK
export NLS_LANG
之后在telnet就能够正常察看汉字了
如果要在小型机上显示汉字,则需要将主语言环境设置为IBM-env,之后在小机上就能正常显示了,但是不建议更改主语言环境,因为容易导致oracle中的监听等出现乱码,出了问题,给的提示也是中文,无法将错误在网上进行查找。
以上信息仅供参考!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP