Den kode, du stødte på, er beregnet til at opdatere en enkelt række eller oprette den, hvis den ikke eksisterer.
DUAL er en speciel systemtabel, der kun indeholder én række. At vælge fra DUAL er en løsning for Oracles manglende evne til at gøre ganske enkelt:
select sysdate;
Bemærk, at det ikke behøver at være dual
, det kan være en hvilken som helst tabel med én række eller endda en forespørgsel, der returnerer én række.
select sysdate
from dual;
svarer til:
select sysdate
from my_one_row_table;
og
select sysdate
from my_table
where my_primary_key = 1;
Siden version 10g er dual
tabellen har en speciel adgangssti, der vises i udførelsesplanen som "hurtig dual", hvilket resulterer i 0 konsistente gets, hvilket ikke er muligt at opnå på egen hånd ved hjælp af andre tabeller.