点击此处浏览总目录

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,这样排查起来更方便

 

posted @ 2020-08-13 16:16  立业的博客  阅读(1585)  评论(0编辑  收藏  举报