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

Requête la plus rapide pour vérifier l'existence d'une ligne dans Oracle ?

L'utilisation de COUNT(*) est acceptable si vous utilisez également rownum=1 :

declare
   l_cnt integer;
begin
   select count(*)
   into   l_cnt
   from   x
   where  x.col_a = value_a 
   and    x.col_b = value_b
   and    rownum = 1;
end;

Cela renverra toujours une ligne, donc pas besoin de gérer une exception NO_DATA_FOUND. La valeur de l_cnt sera 0 (aucune ligne) ou 1 (au moins 1 ligne existe).