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-01427
Aprenda por qué y cómo resolver los mensajes de error ORA-01427 en Oracle.
describir
Cuando encuentra un error ORA-01427, aparece el siguiente mensaje de error:
- ORA-01427: la subconsulta de una sola fila devuelve más de una fila
razón
Ha intentado ejecutar una instrucción SQL que contiene una subconsulta SQL que devuelve varias filas.
resolver
Las opciones para resolver este error de Oracle incluyen:
Opción 1
Vuelva a escribir su consulta para que la subconsulta devuelva solo una fila.
Opcion 2
Cambie su consulta para usar una de las siguientes opciones para los resultados de la subconsulta:
- ningún
- todo
- existe
- no en
Por ejemplo, si intenta ejecutar la siguiente instrucción SQL:
SELECT * FROM orders WHERE supplier_id = (SELECT supplier_id FROM suppliers WHERE supplier_name="IBM");
y hay más de un registro en la tabla de proveedores con el nombre de proveedor IBM, obtendrá el siguiente mensaje:
La forma más común de corregir esta declaración SQL es usar una condición IN de la siguiente manera:
SELECT * FROM orders WHERE supplier_id IN (SELECT supplier_id FROM suppliers WHERE supplier_name="IBM");