錯誤:當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,這樣排查起來更方便