10 ORA系列:ORA-12704 字符集不匹配 character set mismatch
如果希望對常見的Oracle異常ORA報錯解決方案有系統(tǒng)的了解,請看《ORACLE系列異常總結ORA》。
?
關于Union 中 ORA-12704:字符集不匹配 character set mismatch
?
在使用Union all連接時,若A集合中某列為nvarchar2或nvarchar類型,而B集合中無此列,用‘ ’ 來代替是會報字符集不匹配。
?
解決方法有三種,見下面的示例
例:
| select?'中國', 'China', cast('中國'?as?nvarchar2(10)) T ??from?dual union?all select?'美國', 'USA', '' ??from?dual; |
?
如上,T的類型為nvarchar2,長度為10,如果直接這樣查詢,就會報字符集不匹配,那么怎么來處理呢?
1.to_char()
| select?'中國', 'China', to_char(cast('中國'?as?nvarchar2(10))) T ??from?dual union?all select?'美國', 'USA', '' ??from?dual; |
?
2. 用N' ',N''是將‘’轉換為Unicode編碼
| select?'中國', 'China', cast('中國'?as?nvarchar2(10)) T ??from?dual union?all select?'美國', 'USA', N'' ??from?dual; |
?
3.使用cast()將字符集轉換為相同
| select?'中國', 'China', cast('中國'?as?nvarchar2(10)) T ??from?dual union?all select?'美國', 'USA', cast(''?as?nvarchar2(10)) T ??from?dual; |
這樣就可以解決字符集不匹配問題了
?
總結
以上是生活随笔為你收集整理的10 ORA系列:ORA-12704 字符集不匹配 character set mismatch的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 09 ORA系列:ORA-06553 P
- 下一篇: Element 'dependency'