sql >> Base de Datos >  >> RDS >> Oracle

Datos de muestra:problema al ejecutar el procedimiento almacenado que consiste en declaraciones de actualización e inserción

En realidad no lo es, es parte de una clave única compuesta. Entonces, realmente su cláusula ON debería coincidir con

on (tgt.app_lse_s  = src.app_lse_s
    and tgt.dt_ent_s = src.dt_ent_s)

Por cierto, el uso de trim() en la cláusula ON es preocupante, especialmente trim(tgt.app_lse_s) . Si está insertando valores con espacios finales o iniciales, su "clave única" producirá múltiples resultados cuando los recorte. Debe recortar los espacios cuando cargue los datos del archivo e inserte valores recortados en su tabla.

MJL_IDX0 me debe un índice único. Eso significa que debe incluir sus columnas en cualquier consideración de registros únicos.

Claramente, hay una diferencia entre su lógica INSERT directa y su lógica INSERT MERGE. Debe comparar las dos afirmaciones y averiguar cuál es la diferencia.