sql >> Databasteknik >  >> RDS >> Oracle

Exempeldata - Problem under exekvering av lagrad procedur som består av både uppdaterings- och infogningssatser

Det är det faktiskt inte, det är en del av en sammansatt unik nyckel. Så egentligen borde din ON-klausul matcha på

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

För övrigt användningen av trim() i ON-satsen är oroande, särskilt trim(tgt.app_lse_s) . Om du infogar värden med efterföljande eller ledande mellanslag kommer din "unika nyckel" att producera flera träffar när du trimmar dem. Du bör trimma mellanslagen när du laddar data från filen och infoga trimmade värden i din tabell.

MJL_IDX0 måste mig ett unikt index. Det betyder att du måste inkludera dess kolumner i alla överväganden av unika poster.

Det är uppenbarligen en skillnad mellan din raka INSERT-logik och din MERGE INSERT-logik. Du måste jämföra de två påståendena och ta reda på vad skillnaden är.




  1. Flytta mysql-rad till en annan tabell i samma databas

  2. MYSQL Fulltextsökning och GILLA

  3. Nackdelar med att lagra ett heltal som en sträng i en databas

  4. 2 sätt att returnera rader som endast innehåller icke-alfanumeriska tecken i Oracle