Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
Oracle/PLSQL: mensaje de error ORA-01790
Aprenda por qué y cómo resolver los mensajes de error ORA-01790 en Oracle.
describir
Cuando encuentra un error ORA-01790, aparece el siguiente mensaje de error:
- ORA-01790: la expresión debe tener el mismo tipo de datos que la expresión correspondiente
razón
Intentó una declaración SELECT (quizás una consulta UNION o una consulta UNION ALL) y ninguna de las columnas de resultados de la consulta contenía tipos de datos coincidentes.
resolver
Las opciones para resolver este error de Oracle incluyen:
Opción 1
Vuelva a escribir la declaración SELECT para que cada columna coincidente sea del mismo tipo de datos.
Por ejemplo, si intenta ejecutar la siguiente consulta UNION:
SELECT supplier_name FROM orders UNION SELECT quantity FROM orders_audit;
Recibirá un mensaje de error como este:
Dado que la columna nombre_proveedor se define como varchar2 y la columna de cantidad se define como un número, estas columnas no pueden coincidir con las columnas.
Puede intentar corregir esta consulta UNION utilizando una función de conversión (es decir, función TO_CHAR, función TO_NUMBER o función TO_DATE) para convertir el valor a un tipo de datos coincidente.
Por ejemplo:
SELECT supplier_name FROM orders UNION SELECT TO_CHAR(quantity) FROM orders_audit;
En este ejemplo, usamos la función TO_CHAR para convertir la columna de cantidad a un tipo de datos compatible con la columna de nombre del proveedor.