Hallo,
Ich hole mit mit einem Cursor mehrere Datensätze aus einer Tabelle:
DECLARECURSOR cur IS
SELECT *
FROM test;
var test%ROWTYPE;Es kann aber sein, dass in der Tabelle noch kein Datensatz vorhanden ist, deßhalb will ich den Cursor auf NULL abfragen:
BEGIN
IF cur IS NULL THEN...Das geht aber nicht. Also habe ich mir gedacht, ich versuche den ersten Eintrag (den es aber nicht gibt!) aus dem Cursor zu lesen und dann die Variable 'test' auf NULL abzufragen. Das geht aber auch nicht.
Zuerst einmal müsstest Du 'var' auf NULL abfragen, nicht 'test' (da var test%ROWTYPE die Variable 'var' definiert vom Typ "Zeile aus Tabelle 'test'"). Zum anderen gibt's dafür explizit eine Syntax:
OPEN cur;
FETCH c1 INTO var;
IF c1%NOTFOUND THEN
-- tu was --
END IF
CLOSE cur;
Schau Dir dazu am besten die Doku an: http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/06_ora.htm#36656
Viele Grüße,
Christian