sql >> Databáze >  >> RDS >> Oracle

Ukázková data – problém při provádění uložené procedury, která se skládá z příkazů aktualizace a vložení

Ve skutečnosti tomu tak není, je to součást složeného jedinečného klíče. Vaše klauzule ON by tedy měla odpovídat

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

Mimochodem, použití trim() v klauzuli ON je znepokojující, zejména trim(tgt.app_lse_s) . Pokud vkládáte hodnoty s mezerami na konci nebo na začátku, váš „jedinečný klíč“ bude při ořezávání vytvářet více shod. Mezery byste měli oříznout, když načítáte data ze souboru a vkládáte oříznuté hodnoty do tabulky.

MJL_IDX0 musím mít jedinečný index. To znamená, že musíte jeho sloupce zahrnout do všech úvah o jedinečných záznamech.

Je zřejmé, že existuje rozdíl mezi vaší přímou logikou INSERT a logikou MERGE INSERT. Musíte porovnat tyto dva výroky a zjistit, jaký je rozdíl.




  1. Jak opravit „příkaz ALTER TABLE SWITCH se nezdařil“

  2. mysqldump s --where klauzule nefunguje

  3. Vypočítat průběžný součet v SQL Server

  4. mysql vyberte data bez tabulek