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-22818
Aprenda por qué y cómo resolver los mensajes de error ORA-22818 en Oracle.
describir
Cuando encuentra un error ORA-22818, aparece el siguiente mensaje de error:
- ORA-22818: expresión de subconsulta no permitida aquí
razón
Intentó incluir una subconsulta en la cláusula GROUP BY.
resolver
Las opciones para resolver este error de Oracle incluyen:
Opción 1
Este error ocurre cuando intenta ejecutar una instrucción SQL que contiene una subconsulta en la cláusula GROUP BY.
Por ejemplo, si intenta ejecutar la siguiente instrucción SELECT:
SELECT SUM(price), CASE WHEN category = 'Vegetables' THEN (SELECT suppliers.supplier_name FROM suppliers) ELSE 'Not applicable' END sname FROM products GROUP BY CASE WHEN category = 'Vegetables' THEN (SELECT suppliers.supplier_name FROM suppliers) ELSE 'Not applicable' END;
Recibirá el siguiente mensaje de error:
Elimine las siguientes subconsultas (en la instrucción CASE) de la cláusula GROUP BY.
(SELECT suppliers.supplier_name FROM suppliers)
Por ejemplo, puede escribir una consulta de la siguiente manera:
SELECT SUM(price), CASE WHEN category = 'Vegetables' THEN 'Safeway' ELSE 'Not applicable' END sname FROM products GROUP BY CASE WHEN category = 'Vegetables' THEN 'Safeway' ELSE 'Not applicable' END;