Matzberger Marcus: Fehlerbehandlung

Beitrag lesen

Hallo,

Hi Tom2,

eine gute Möglichkeit, einen "no data found" error zu umgehen ist z.B.

select count(1) into i from dual where exists (select spalte from tabelle where spalte is null);

if i=0 then
  select spalte from tabelle where spalte is not null;
else
  mach_nix();
end if;

Wenn also Spalte mindestens einmal null ist, steht in der Variable i der Wert 1 drin. Falls i=0 dann kannst Du ohne Probleme auf die Spalte zugreifen.

Performancemäßig aber möglicherweise ein Tiefschlag, da jede Abfrage doppelt ausgeführt wird. Bei Abfrage auf IS NULL ohne Verwendung eines Index mit einem FULL TABLE SCAN. Da lasse ich mir lieber einen "no data found" geben und behandle den entsprechend.

Grüße
Marcus

--
si vis pacem, para iustitiam