DBAtlas · Atlas de operaciones de bases de datos

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.

Abrir en DBAtlas →

Más entradas de este motor