Je tomu docela dávno co jsem něco napsal na blog.
Dnes jsem se nějakou tu pulhodinku po čase potrápil nad naprostou hloupostí.
Psal jsem jednoduchou žurnálovací proceduru, běžící v autonomní transkakci.
Procedura měla páchat pouze kontrolu existence záznamu a případný inzert nového když nebude existovat záznam odpovídající vstupním parametrům.
A protože se mi nechtělo se mi ale používat if else logiku.Řekl jsem si, že použiju příkaz Merge na tutu zbabělou operaci.
Po chvilce trápení a googlení jsem našel výsledek, respektive jsem byl osvícen.
Jak jistě někteří z Vás ví, tak merge je ideální na operace na měkolika tabulkami.
Ale co dělat v případě že potřebujeme testovat, aktualizovat a případně insertovat nový záznam pouze v jedné tabulce?
Kde vzít druhou tabulku, protože když budeme používat jako zdrojovou tabulku tu tu samou kterou máme cílovou, nastane okamžik, kdy podmínka pro aktualizaci bude vlastně pravdivá i když žádný záznam neexistuje?
Řešením je kouzelná tabulka DUAL.