記一次case中遇到的ora-12704錯誤解決

qqmengxue發表於2010-11-17

環境:

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章