Я новичок в plsql. Нижеприведенный код работает без какой-либо ошибки компиляции, но исключение notFoundException не вызвано. Любая помощь будет назначена.Исключение не вызвано в plsql
declare
abc exception;
notFoundException exception;
cursor c1(dd number) is select first_name from employees where salary = dd;
begin
for i in c1(&t)
loop
if(c1%rowcount!=1) then
raise abc;
elsif(c1%notfound) then
raise notFoundException;
else
dbms_output.put_line(i.first_name);
end if;
end loop;
Exception
when abc then
dbms_output.put_line('abc');
insert into messages values('too many rows exception');
when notFoundException then
dbms_output.put_line('notFoundException');
insert into messages values('Nobody with this salary : ');
end;
/
Есть много проблем с этим кодом. Если запрос не возвращает строк, вы никогда не войдете в свой цикл. 'c1% rowcount' - это количество строк, которые были выбраны до сих пор, не сколько строк будет извлечено. 'c1% notfound' никогда не будет« истинным »в этом случае. Я предполагаю, что это домашнее задание, и я не уверен, что это такое, чего вы на самом деле пытаетесь достичь. Возможно, вы хотите выполнить 'select into', а затем обработать дескрипторы' no_data_found' и 'too_many_rows'. –