日期:2014-05-16  浏览次数:20382 次

演示字符集不同导致插入,查询产生乱码的过程
进行查询:
会话1:使用ZHS16GBK字符集,可以正常显示插入的汉字。
[oracle@bys001 ~]$ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
[oracle@bys001 ~]$ echo $NLS_LANG                      
AMERICAN_AMERICA.ZHS16GBK
[oracle@bys001 ~]$ sqlplus bys/bys
BYS@bys1>create table test(id number,name varchar2(10));

Table created.
注意:这里insert into test values(1,'白');
我使用SSH SECURE SHELL终端工具连到远程LINUX中,然后再从数据库所在主机使用SQLPLUS登陆,
这个插入的语句我是先在文本文档中写好再复制到SQLPLUS终端里的。我直接在终端中输入汉字不行。
BYS@bys1>insert into test values(1,'白');
1 row created.
BYS@bys1>commit;
Commit complete.
BYS@bys1>select * from test;
        ID NAME
---------- --------------------
         1 白

会话2:
[oracle@bys001 ~]$ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
[oracle@bys001 ~]$ echo $NLS_LANG                      
AMERICAN_AMERICA.AL32UTF8
[oracle@bys001 ~]$ sqlplus bys/bys

BYS@bys1>select * from test;

        ID NAME
---------- ----------
         1 缃