Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Schnellste Abfrage, um das Vorhandensein einer Zeile in Oracle zu überprüfen?

Die Verwendung von COUNT(*) ist in Ordnung, wenn Sie auch rownum=1:

verwenden
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;

Dadurch wird immer eine Zeile zurückgegeben, sodass keine NO_DATA_FOUND-Ausnahme behandelt werden muss. Der Wert von l_cnt ist 0 (keine Zeilen) oder 1 (mindestens 1 Zeile vorhanden).