union all兩個結果集報ORA-12704: character set mismatch錯誤


錯誤:當union all兩個結果集時,報ORA-12704: character set mismatch錯誤,例如:

select colA from TableA
union
select colB from TableB

         

原因:是字段類型不匹配導致的,比如TableA的colA字段類型是nvarchar類型,而colB的字段類型是varchar類型,兩者類型不統一,因此會報字符集不匹配的錯誤

 

解決方案:可以將其中一個結果集的類型做下轉換,如:

select colA from TableA
union
select n''|| colB from TableB  --通過在=追加n''||將colB轉換為nvarchar

  注意:有時,union兩端的結果集的字段過多,導致排查起來特別困難,可分別將兩端的結果集用create table as的方式創建一個臨時表,然后再比對兩個臨時表的DDL,這樣排查起來更方便

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM