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.