ORA-01427: single-row subquery returns more than one row (una subconsulta de una sola fila devuelve más de una fila)
Oracle¿Qué significa?
Una subconsulta de la que se esperaba una sola fila devolvió más de una fila. Por ejemplo, la subconsulta del lado derecho de una comparación de igualdad (=) produjo varios valores.
¿Por qué ocurre?
Una subconsulta que devuelve varias filas donde se espera = o una asignación; una condición WHERE insuficientemente acotada; una coincidencia no única en la correlación; una subconsulta escalar en la lista SELECT que devuelve varias filas.
Cómo solucionarlo
Acote la subconsulta para que devuelva una sola fila (WHERE adicional, clave única). Si realmente se esperan varios valores, use IN en lugar de =: WHERE id IN (SELECT id FROM ...). O añada una agregación a la subconsulta (MAX, MIN), o redúzcala a una fila con ROWNUM = 1. Ejecute primero la subconsulta por separado y compruebe cuántas filas devuelve.
Más entradas de este motor
- ORA-00918column ambiguously defined (columna definida de forma ambigua)
- ORA-06550línea/columna PLS-... error de compilación PL/SQL
- ORA-04068existing state of packages has been discarded (se descartó el estado existente de los paquetes)
- ORA-12899value too large for column (valor demasiado grande para la columna)
- ORA-30926unable to get a stable set of rows in the source tables (no se puede obtener un conjunto estable de filas en las tablas de origen)
- ORA-08103object no longer exists (el objeto ya no existe)
- ORA-01843not a valid month (mes no válido)