考试网 >> IT认证 >> Oracle >> Oracle指导 >> Oracle数据库字符集问题解析(2)

Oracle数据库字符集问题解析(2)

发布时间:2006-06-28 09:57     点击:
分页:上一页  1 [2] 3 4  下一页

D:>SQLPLUS "/ AS SYSDBA"

无法显示用ZHS16GBK插入的字符集,但可以显示用US7ASCII插入的字符集

SQL> SELECT * FROM TEST;

R1

----------

东北

??

更改服务器字符集为ZHS16GBK

SQL> update props$ set value$=’ZHS16GBK’ WHERE NAME=’NLS_CHARACTERSET’;

1 row updated.

SQL> COMMIT;

更改客户端字符集为ZHS16GBK

D:>SET NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

D:>SQLPLUS "/ AS SYSDBA"

可以显示以前US7ASCII的字符集,但无法显示用ZHS16GBK插入的数据,说明用ZHS16GBK插入的数据为乱码。

SQL> SELECT * FROM TEST;

R1

--------------------

东北

??

--------------------------------------------------------------------------------

需要指出的是,通过“update props$ set value$=’ZHS16GBK’ WHERE NAME=’NLS_CHARACTERSET’;”来修改数据库字符集是非常规作法,很可能引起问题,在这里只是原文引用网友的实验结果。 

 

实验结果分析四 

quote: 

--------------------------------------------------------------------------------

SQL> INSERT INTO TEST VALUES(’东北’);

1 row created.

SQL> SELECT * FROM TEST;

R1

--------------------

东北

??

东北

SQL> EXIT

--------------------------------------------------------------------------------

由于此时数据库与客户端的字符集设置均为ZHS16GBK,所以不会发生字符集的转换,第一行与第三行数据显示正确,而第二行由于存储的数据就是63(00111111),所以显示的是“?”号。

quote: 
分页:上一页  1 [2] 3 4  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有