环境:
ORACLE10.2.0.4
OS:LINUX 5.3
[@more@]今天系统中需要统计一批数据,可是当我通过case语句进行转换某一列的时候确报ORA-12704: 字符集不匹配,检查发现case中满足条件后输出的列为NVARCHAR2类型的,试着将这列转换为char的问题就可以解决了。
以下为测试结果:
SQL> create table test (a nvarchar2(10));
Table created
SQL> insert into test values('a');
1 row inserted
SQL> insert into test values('b');
1 row inserted
SQL> commit;
Commit complete
SQL> select case when a = 'a' then 'a' else a end from test;
select case when a = 'a' then 'a' else a end from test
ORA-12704: 字符集不匹配
SQL> select case when a = 'a' then 'a' else 'b' end from test;
CASEWHENA='A'THEN'A'ELSE'B'END
------------------------------
a
b
SQL> select case when a = 'a' then 'a' else to_char(a) end from test;
CASEWHENA='A'THEN'A'ELSETO_CHA
------------------------------
a
b
SQL>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10130206/viewspace-1041618/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10130206/viewspace-1041618/