一个利用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异常处理的通用格式,其他情况可依此套用。

你可能感兴趣的:(oracle,function,null,output)