Код, с которым вы столкнулись, предназначен для обновления одной строки или ее создания, если она не существует.
DUAL - это специальная системная таблица, содержащая всего одну строку.
Выбор из DUAL - это обходной путь для неспособности Oracles сделать просто:
select sysdate;
Обратите внимание, что это не обязательно должно быть dual
, это может быть любая таблица из одной строки или даже запрос, который возвращает одну строку.
select sysdate
from dual;
эквивалентно:
select sysdate
from my_one_row_table;
и
select sysdate
from my_table
where my_primary_key = 1;
Начиная с версии 10g, таблица dual
имеет специальный путь доступа, который отображается в плане выполнения как «быстрый двойной», что приводит к 0 последовательным получениям, которые невозможно достичь самостоятельно, используя другие таблицы .