oracle转码后再转回去,求教!
首先我讲下问题:
本人oracle的字符集是GBK的,如下:
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
有张表tab_user,表结构很简单,如下:
create table tab_user(name varchar2(100));
插入一条数据:
insert into tab_user values('中国');
查询记录,没什么好说的:
SQL> select name from tab_user;
NAME
-------------------------------
中国
接下来我进行转码,
这样查会乱码(虽然还认识这个字,但是很明显不对了,声明下,这字是系统给出来的。。。),也很正常:
SQL> select CONVERT(NAME,'WE8ISO8859P1','ZHS16GBK') from tab_user;
CONVERT(NAME,'WE8ISO8859P1','ZHS16GBK')
---------------------------------------
靠
关键问题来了,我如果再转回去(下面这样写)为什么不可以恢复呢,请教高手,如何回去?
SQL> select CONVERT(CONVERT(name,'WE8ISO8859P1','ZHS16GBK'),'ZHS16GBK','WE8ISO88
59P1') from tab_user;
CONVERT(CONVERT(NAME,'WE8ISO8859P1','ZHS16GBK'),'ZHS16GBK','WE8ISO8859P1')
--------------------------------------------------------------------------------
??