Я читал, что SELECT
, который не получает никаких данных, сгенерирует NO_DATA_FOUND
.
Но для моего опыта это не так, потому что я сделал:
SELECT COUNT(*) INTO mylocalvar FROM tbl;
В пустой таблице, и она не запускает исключение NO_DATA_FOUND.
Вместо этого я узнал, что mylocalvar
был NULL
.
Я ожидал, что это будет = 0
, но это было NULL
.
Так что, если мне нужно проверить, является ли count(*)
1018 *, мне нужно:
IF mylocalvar IS NULL THEN
--do stuff
Это правильно? Кроме того, почему в этом случае NO_DATA_FOUND не применяется?
Могу ли я присвоить mylocalvar значение 0 по умолчанию? Может быть, в объявлении:
DECLARE
mylocalvar NUMBER := 0;
Так что я могу просто сделать IF mylocalvar = 0 THEN
?
Спасибо