Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment Oracle SELECT FROM dual fonctionne-t-il avec plusieurs champs

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.