Der Code, auf den Sie gestoßen sind, soll eine einzelne Zeile aktualisieren oder erstellen, wenn sie nicht vorhanden ist.
DUAL ist eine spezielle Systemtabelle, die nur eine Zeile enthält. Die Auswahl aus DUAL ist eine Problemumgehung für Oracles Unfähigkeit, einfach Folgendes zu tun:
select sysdate;
Beachten Sie, dass es nicht dual
sein muss , es kann jede einzeilige Tabelle oder sogar eine Abfrage sein, die eine Zeile zurückgibt.
select sysdate
from dual;
entspricht:
select sysdate
from my_one_row_table;
und
select sysdate
from my_table
where my_primary_key = 1;
Seit Version 10g ist der dual
table hat einen speziellen Zugriffspfad, der im Ausführungsplan als "fast dual" angezeigt wird, was zu 0 konsistenten Abrufen führt, was mit anderen Tabellen nicht möglich ist.