Maison > Article > base de données > 一个利用Oracle异常处理的函数
Oracle函数主体如下:CREATE OR REPLACE FUNCTION fn_get_agmt_bal(p_agmt_no varchar2)RETURN NUMBER IS v_bal NUMBER := 0;
Oracle函数主体如下:
CREATE OR REPLACE FUNCTION fn_get_agmt_bal(p_agmt_no varchar2)
RETURN NUMBER IS
v_bal NUMBER := 0;
--在SQL/PLUS中执行时,若合dbms_output生效,,需先执行【SET SERVEROUTPUT ON】;
BEGIN
select agmt_bal
into v_bal
from edw_t01_agmt_bal_h
where agmt_no = P_agmt_no;
RETURN v_bal;
EXCEPTION
WHEN NO_DATA_FOUND THEN
dbms_output.put_line('没有找到数据,请输入合法的协议编号!');
return null;
WHEN TOO_MANY_ROWS THEN
dbms_output.put_line('返回数据太多,请输入合法的协议编号!');
return null;
WHEN OTHERS THEN
dbms_output.put_line('异常!');
return null;
END fn_get_agmt_bal;
/
说明:
1、函数中用到了dbms_output包,在SQL/PLUS中执行时,若合使dbms_output生效,需先执行【SET SERVEROUTPUT ON】。
2、这是一个利用oracle异常处理的通用格式,其他情况可依此套用。