Я думаю, вы имеете в виду, что вы должны делать, если курсор не возвращает совпадение для l_val
?
Используя ваш метод, вы можете сделать это:
l_found BOOLEAN := FALSE;
CURSOR cursor1 IS
SELECT....;
FOR c1 in cursor1 LOOP
IF c1.myvalue = l_val THEN
--the value found
--perform an action
l_found := TRUE;
END IF;
END LOOP;
IF NOT l_found THEN
-- Do something when not found
END IF;
Но на самом делеВы не хотите получать все строки в инструкции SELECT, а затем проверять каждую из них на соответствие. Вместо этого вы можете сделать сопоставление в SELECT:
l_found BOOLEAN := FALSE;
CURSOR cursor1 IS
SELECT....
WHERE myvalue = l_val;
FOR c1 in cursor1 LOOP
--the value found
--perform an action
l_found := TRUE;
END LOOP;
IF NOT l_found THEN
-- Do something when not found
END IF;