Oracle
 sql >> Base de données >  >> RDS >> Oracle

Exemple de données - Problème lors de l'exécution d'une procédure stockée qui consiste à la fois en des instructions de mise à jour et d'insertion

En fait, ce n'est pas le cas, cela fait partie d'une clé unique composée. Donc, vraiment, votre clause ON doit correspondre à

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

Incidemment, l'utilisation de trim() dans la clause ON est inquiétant, surtout trim(tgt.app_lse_s) . Si vous insérez des valeurs avec des espaces de fin ou de tête, votre "clé unique" produira plusieurs résultats lorsque vous les couperez. Vous devez supprimer les espaces lorsque vous chargez les données à partir du fichier et insérez les valeurs supprimées dans votre tableau.

MJL_IDX0 me faut un index unique. Cela signifie que vous devez inclure ses colonnes dans toute prise en compte des enregistrements uniques.

Il y a clairement une différence entre votre logique INSERT directe et votre logique MERGE INSERT. Vous devez comparer les deux déclarations et déterminer quelle est la différence.