Koden du stötte på är avsedd att uppdatera en enskild rad, eller skapa den om den inte finns.
DUAL är en speciell systemtabell som bara innehåller en rad. Att välja från DUAL är en lösning för Oracles oförmåga att göra helt enkelt:
select sysdate;
Observera att det inte behöver vara dual
, det kan vara valfri enradstabell eller till och med en fråga som returnerar en rad.
select sysdate
from dual;
motsvarar:
select sysdate
from my_one_row_table;
och
select sysdate
from my_table
where my_primary_key = 1;
Sedan version 10g har dual
tabellen har en speciell åtkomstväg som visas i exekveringsplanen som "snabb dual", vilket resulterar i 0 konsekventa gets, vilket inte är möjligt att uppnå på egen hand med andra tabeller.