Eigenlijk is het dat niet, het maakt deel uit van een samengestelde unieke sleutel. Dus je ON-clausule zou eigenlijk moeten overeenkomen met
on (tgt.app_lse_s = src.app_lse_s
and tgt.dt_ent_s = src.dt_ent_s)
Overigens is het gebruik van trim()
in de ON-clausule is zorgwekkend, vooral trim(tgt.app_lse_s)
. Als u waarden invoegt met spaties vooraan of achteraan, zal uw "unieke sleutel" meerdere treffers produceren wanneer u ze bijsnijdt. U moet de spaties inkorten wanneer u de gegevens uit het bestand laadt en ingekorte waarden in uw tabel invoegen.
MJL_IDX0
moet me een unieke index. Dat betekent dat u de kolommen ervan moet opnemen in elke overweging van unieke records.
Er is duidelijk een verschil tussen uw rechte INSERT-logica en uw MERGE INSERT-logica. Je moet de twee uitspraken vergelijken en uitzoeken wat het verschil is.