Cómo solucionar el error Ora-01427: la subconsulta de una sola fila devuelve más de una fila en una declaración de actualización.
Aquí está mi consulta:
UPDATE CIELA_STATUS
SET CIELA_STATUS.OSIGURENI = (
SELECT STG5.OSIGURENI
FROM CIELA_STATUS_STG5 STG5
WHERE CIELA_STATUS.UIC = STG5.UIC)
WHERE EXISTS (
SELECT STG5.OSIGURENI
FROM CIELA_STATUS_STG5 STG5
WHERE CIELA_STATUS.UIC = STG5.UIC
AND nvL(CIELA_STATUS.OSIGURENI, 9999) <> STG5.OSIGURENI)
davy.ai
Esta consulta actualiza la columna “OSIGURENI” en la tabla “CIELA_STATUS” con el valor correspondiente de la columna “OSIGURENI” en la tabla “CIELA_STATUS_STG5”. Lo hace mediante la coincidencia de la columna “UIC” en ambas tablas.
La cláusula WHERE verifica la existencia de un valor “UIC” coincidente en ambas tablas y también verifica si los valores “OSIGURENI” no son iguales.
La función nvL se utiliza para reemplazar cualquier valor nulo en la columna “OSIGURENI” con el valor 9999.
En resumen, esta consulta garantiza que los valores “OSIGURENI” en la tabla “CIELA_STATUS” se actualicen con los valores más recientes de la tabla “CIELA_STATUS_STG5” para los valores “UIC” coincidentes, pero solo si los valores son diferentes.