Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie funktioniert Oracle SELECT FROM dual mit mehreren Feldern?

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.