Kod, na który natknąłeś się, ma na celu aktualizację pojedynczego wiersza lub utworzenie go, jeśli nie istnieje.
DUAL to specjalna tabela systemowa zawierająca tylko jeden wiersz.Wybór z DUAL jest obejściem braku możliwości Oracle:
select sysdate;
Zauważ, że nie musi być dual
, może to być dowolna jednowierszowa tabela lub nawet zapytanie zwracające jeden wiersz.
select sysdate
from dual;
jest równoważne z:
select sysdate
from my_one_row_table;
i
select sysdate
from my_table
where my_primary_key = 1;
Od wersji 10g, dual
tabela ma specjalną ścieżkę dostępu, która pojawia się w planie wykonania jako „szybka podwójna”, co skutkuje 0 spójnymi pobraniami, których nie można osiągnąć samodzielnie przy użyciu innych tabel.