ORACLE:'schöne' Abfrage auf (nicht) vorhanden sein

Hi Leute!

Ich habe ein Problem mit dem Abfragen ob bereits ein Datensatz vorhanden/nicht vorhanden ist. Konkret geht es darum, dass ich bevor ich etwas einfüge, nachsehen muss ob der Schlüssel bereits vorhanden ist.

Ich habe das Problem zwar auf meine eigene Weise gelöst bin aber nicht wirklich damit zufrieden.

Meine momentaner Ansatz sieht so aus:

CURSOR cBookISBN IS (SELECT ISBN FROM BUCH WHERE ISBN=pISBN);

OPEN cBookISBN;
FETCH cBookISBN INTO cBookISBN_rec;

IF cBookISBN%NOTFOUND THEN
RAISE eNoISBNFound;
END IF;
CLOSE cBookISBN;

Ehrlich gesagt gefällt mir dieser Ansatz überhaupt nicht, vorher hatte ich:

SELECT ISBN INTO myISBN FROM BUCH WHERE ISBN=pISBN;
IF myISBN IS NULL THEN
RAISE eNoISBNFound;
END IF;

Nur hier habe ich das Problem, dass der Fehler no_data_found dauernd geworfen wird. Mir ist schon klar warum dieser Fehler auftritt (Select liefert kein Ergebnis), aber wie mach ich die Überprüfung „schöner“. Ich dachte da an sowas wie:

IF EXISTS (SELECT * FROM BUCH WHERE ISBN=pISBN) THEN
RAISE eNoISBNFound;
END IF;

Aber das habe ich auch noch net zum laufen gebracht.

SELECT count(*) FROM BUCH WHERE ISBN=pISBN;

Gruß

Peter