O código que você encontrou destina-se a atualizar uma única linha ou criá-la se ela não existir.
DUAL é uma tabela de sistema especial contendo apenas uma linha. A seleção de DUAL é uma solução alternativa para a incapacidade do Oracle de fazer simplesmente:
select sysdate;
Observe que não precisa ser
dual
, pode ser qualquer tabela de uma linha ou até mesmo uma consulta que retorne uma linha. select sysdate
from dual;
é equivalente a:
select sysdate
from my_one_row_table;
e
select sysdate
from my_table
where my_primary_key = 1;
Desde a versão 10g, o
dual
table tem um caminho de acesso especial que aparece no plano de execução como "fast dual", o que resulta em 0 obtenções consistentes, o que não é possível obter por conta própria usando outras tabelas.