sql >> Database >  >> RDS >> Oracle

Voorbeeldgegevens - Probleem tijdens het uitvoeren van een opgeslagen procedure die bestaat uit zowel update- als insert-instructies

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.




  1. Wanneer zijn (SELECT) queries gepland?

  2. Substitutievariabele negeren wanneer niet aan de voorwaarde is voldaan

  3. Hoe een MySQL-tabel te partitioneren op basis van de char-kolom?

  4. Geneste select-instructie in SQL Server