使用带有union和CLOB字段的select时出错ORA-00932

gab*_*ira 27 database oracle plsql

首先,这不是这个问题的重复.如果是,抱歉,但我无法通过阅读来解决我的问题.

我收到这个错误:

ORA-00932: inconsistent datatypes: expected - got CLOB
Run Code Online (Sandbox Code Playgroud)

当我尝试执行此SELECT语句时:

SELECT TXT.t_txt 
  FROM CITADM.tb_avu_txt_grc GR  
 INNER JOIN CITADM.tb_avu_txt TXT   
    ON (GR.e_txt = TXT.e_txt and GR.u_txt = TXT.u_txt)  
 WHERE  TXT.u_lin_ord = 1
UNION
SELECT TXT.t_txt 
  FROM CITADM.tb_avu_txt_grc_cvd GRC  
 INNER JOIN CITADM.tb_avu_txt TXT  
    ON (GRC.e_txt = TXT.e_txt and GRC.u_txt = TXT.u_txt)  
 WHERE  TXT.u_lin_ord = 2
Run Code Online (Sandbox Code Playgroud)

所选字段(t_txt)是CLOB数据类型.如您所见,它与同一个表的列相同.这个陈述属于一个更大的陈述,我已经隔离了我遇到这个问题的部分.

非常感谢你.

Eri*_*lje 48

我认为问题在于使用UNION而不是UNION ALL.该UNION运营商将结合两套和消除重复.由于无法比较CLOB类型,因此不能使用重复消除部分.

使用UNION ALL不会尝试重复消除(你可能没有重复)所以它应该工作.