Le code que vous avez rencontré est destiné à mettre à jour une seule ligne ou à la créer si elle n'existe pas.
DUAL est une table système spéciale contenant une seule ligne. La sélection à partir de DUAL est une solution de contournement pour l'incapacité d'Oracle à faire simplement :
select sysdate;
Notez qu'il n'est pas nécessaire qu'il soit dual
, il peut s'agir de n'importe quelle table à une ligne ou même d'une requête renvoyant une ligne.
select sysdate
from dual;
est équivalent à :
select sysdate
from my_one_row_table;
et
select sysdate
from my_table
where my_primary_key = 1;
Depuis la version 10g, le dual
La table a un chemin d'accès spécial qui apparaît dans le plan d'exécution en tant que "fast dual", ce qui se traduit par 0 obtentions cohérentes, ce qui n'est pas possible d'obtenir par vous-même en utilisant d'autres tables.