Вот мой код sql для функции, которая вычисляет площадь круга. У меня возникли проблемы с получением dbms_output, чтобы показать исключение, определяемое пользователем.Обработка исключений не выводится на dbms
Сначала я объявляю исключение недоразвитым. то я подниму его, если пользователь вводит число, меньшее или равное 0. В исключении у меня есть dbms_output, тогда возвращаем результат. Он показывает в результате запроса, что значение равно null, однако вывод не отображается.
Я уже установил serveroutput и установил подтверждение. Я не знаю, почему это ничего не выводит. Если я запускаю только эту строку, она выводится в окно вывода dbms, но не тогда, когда возникает исключение.
create or replace function circle_area
(p_radius number)
return number
is
c_Pi Constant number := acos(-1);
v_result number(10, 2);
underzero exception;
begin
if p_radius <=0 then
raise underzero;
else
v_result := c_pi * p_radius * p_radius;
return v_result;
end if;
exception
when underzero then
dbms_output.put_line('enter number greater than 0');
return v_result;
when others then
dbms_output.put_line('Exception Location: Anonymous Block');
dbms_output.put_line(sqlcode || ': ' || sqlerrm);
return v_result;
end circle_area;
вызвать функцию:
select circle_area(-2) from dual;