tipos second ora obtenido number interval inconsistentes inconsistent got expected esperaba day dato datatypes database oracle plsql

database - second - ora 00932 inconsistent datatypes expected got clob



Error ORA-00932 al utilizar una selección con campos de unión y CLOB (2)

En primer lugar, esto no es un duplicado de this pregunta. Si lo es, lo siento pero no pude resolver mi problema leyéndolo.

Estoy recibiendo este error:

ORA-00932: inconsistent datatypes: expected - got CLOB

Cuando intento ejecutar esta instrucción 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

El campo seleccionado (t_txt) es del tipo de datos CLOB. Como puedes ver, es la misma columna de la misma tabla. Esta declaración pertenece a una más grande, he aislado la parte donde tengo este problema.

Muchas gracias.


Como tenía duplicados, no podía usar UNION ALL. Esta solución funciona perfectamente, gracias!

Por cierto: esta es la única respuesta correcta, porque UNION ALL y UNION son semánticamente diferentes. Si no tiene duplicados, el uso de UNION impone una sobrecarga de ordenación innecesaria.


Creo que el problema es el uso de UNION lugar de UNION ALL . El operador de UNION combinará los dos conjuntos y eliminará los duplicados . Dado que los tipos CLOB no pueden compararse, la parte de eliminación duplicada no es posible.

El uso de UNION ALL no intentará realizar la eliminación de duplicados (es probable que de todos modos no tenga duplicados) por lo que debería funcionar.