免费注册 查看新帖 |

Chinaunix

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

Linux 下oracle 字符集的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-08 10:58 |只看该作者 |倒序浏览
费尽周折,终于如愿在rhas3下成功安装了oracle9iR2(9024)。下面开始我的测试工作!
我用plsql developer 在客户端上连接服务器上的数据库,建立的简单的一张表,兴奋的输入第一行数据时,我差点倒下!所有的汉字都变成了大问号!(???)我汗ing

字符集问题!我首先想到了这个问题!(因为安装时其实也出现过这样的问题,不设置字符,汉字就变问号)。我google了一下,差到几篇文档,其中一篇英文的说的比较详细,具体说的是有关字符集的子集与超集问题。说US7ASCII 是WE8ISO8859P1, ZHS16GBK, 和 UTF8的真子集;
如下:
US7ASCII 是  WE8ISO8859P1   的子集
US7ASCII 是  ZHS16GBK      的子集

US7ASCII 也是UTF8           的子集

这篇文档中具体的修改数据库字符集的做法如下:
SQL>; SHUTDOWN IMMEDIATE;

SQL>; STARTUP MOUNT;
SQL>; ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL>; ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL>; ALTER DATABASE OPEN;
SQL>; ALTER DATABASE CHARACTER SET ;
SQL>; SHUTDOWN IMMEDIATE; -- or NORMAL
SQL>; STARTUP;

我如法炮制后,
发现一个错误,说新的字符集必须是原有字符集的超集,才可以更新。
我找了半天,发现我的服务器端字符集是:
我需要把它设置成为ZHS16GBK就可以显示汉字了!
(此办法是最有效的一个办法,但是在我这里行不通,正在思考中)
但是这个方法没有成功,因为ZHS16GBK不是WE8ISO8859P1的超集
那么只好另想办法!


用sys用户登录sqlplus,执行
update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET';
然后重新启动数据库
切记,修改完了一定要重起数据库!
还有一个重要注意事项:就是记得设置环境变量!修改 .bash_profile 加入
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
保存,执行source .bash_profile
让环境变量生效!
然后登陆数据库,插入汉字,查询,正确显示!
大功告成,擦汗!

论坛徽章:
0
2 [报告]
发表于 2005-08-09 14:36 |只看该作者

Linux 下oracle 字符集的问题

登录后执行命令:toport LANG= en

try it . ok?

------------------------------------
小小菜鸟
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP