ORA-30926: unable 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)
Oracle¿Qué significa?
En una sentencia MERGE (o un join actualizable), el lado de origen produjo más de una fila coincidente para la misma fila de destino. Oracle detuvo la operación porque no puede decidir con qué valor de origen actualizar.
¿Por qué ocurre?
El origen de MERGE ... USING contiene coincidencias duplicadas para la condición ON; la consulta de origen no es única sobre la clave de destino; varias filas de origen corresponden a la misma fila de destino.
Cómo solucionarlo
Haga que la consulta de origen sea única sobre la clave de destino. Encuentre las coincidencias duplicadas: SELECT key_col, COUNT(*) FROM (source_query) GROUP BY key_col HAVING COUNT(*) > 1; Elimine los duplicados del origen con DISTINCT o una función de agregación/analítica (ROW_NUMBER) y vuelva a ejecutar el MERGE. Asegúrese de que la condición ON sea suficientemente selectiva.
Más entradas de este motor
- ORA-04068existing state of packages has been discarded (se descartó el estado existente de los paquetes)
- ORA-01427single-row subquery returns more than one row (una subconsulta de una sola fila devuelve más de una fila)
- ORA-12899value too large for column (valor demasiado grande para la columna)
- ORA-08103object no longer exists (el objeto ya no existe)
- ORA-01843not a valid month (mes no válido)
- ORA-14400inserted partition key does not map to any partition (la clave de partición insertada no corresponde a ninguna partición)
- ORA-01536space quota exceeded for tablespace (cuota de espacio superada en el tablespace)