DBAtlas · Atlas de operaciones de bases de datos

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.

Abrir en DBAtlas →

Más entradas de este motor