NO_DATA_FOUND, SELECT COUNT(*) IN var und var IST NULL Aufklärung über Trigger
Ich habe gelesen, dass ein SELECT
dass doens nicht ermittelt werden keine Daten generiert NO_DATA_FOUND
.
Aber für meine Erfahrung ist dies nicht wahr, denn ich habe eine:
SELECT COUNT(*) INTO mylocalvar FROM tbl;
Auf einen leeren Tisch und es hat nicht starten NO_DATA_FOUND-Ausnahme aus.
Stattdessen fand ich heraus, dass mylocalvar
war NULL
.
Ich excpeted es = 0
aber es war NULL
.
Also im Grunde, wenn ich brauche, um zu überprüfen, ob das count(*)
ist = 0
ich:
IF mylocalvar IS NULL THEN
--do stuff
Ist das richtig? Auch der Grund, warum in diesem Fall NO_DATA_FOUND nicht anwenden?
Kann ich zuordnen mylocalvar dem Wert 0 als default? Vielleicht in der declare:
DECLARE
mylocalvar NUMBER := 0;
So kann ich nur tun IF mylocalvar = 0 THEN
?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich sehe nicht ein, warum Sie Ihre Abfrage zurückgeben würde
NULL
. Es sollte genau eine Zeile zurückgeben, das ist, warum die exception wird nicht geworfen.Da die Tabelle keine Zeilen enthält, geben
COUNT(*)
ist0
. Gespeichert inmylocalvar
.Versuchen Sie den folgenden code, es Ausgänge
0
GROUP BY
in der Abfrage probiert?