In realtà non lo è, fa parte di una chiave univoca composta. Quindi la tua clausola ON dovrebbe corrispondere su
on (tgt.app_lse_s = src.app_lse_s
and tgt.dt_ent_s = src.dt_ent_s)
Per inciso, l'uso di trim()
nella clausola ON è preoccupante, in particolare trim(tgt.app_lse_s)
. Se stai inserendo valori con spazi finali o iniziali, la tua "chiave univoca" produrrà più risultati quando li taglierai. Dovresti tagliare gli spazi quando carichi i dati dal file e inserisci i valori tagliati nella tabella.
MJL_IDX0
mi deve un indice univoco. Ciò significa che devi includere le sue colonne in qualsiasi considerazione di record univoci.
Chiaramente c'è una differenza tra la tua logica INSERT diretta e la tua logica MERGE INSERT. Devi confrontare le due affermazioni e capire qual è la differenza.