真是搞笑至极.因久未编写存储过程.竟然今天出笑话.TCBS业务系统中涉及的存储过程诸如errnbr及errmsg输出参数,仅在存储过程出错异常exception才会有值.我竟然跑到编写存储过程的同事处询问此事.以为人家的问题.后回来一测试.
一定要加强学习.从事IT行业.真是一日不练.技艺生啊.
附上测试代码,供备记
--a为输入参数
--b为输出参数
--测试目的:如果a有值,则b将无值;否则如果a无值,则b有值
create or replace procedure test_out(a in integer,b out integer)
as
none_a exception;--定义判断输入参数a是否有值的异常
begin
if (a=1) then
null;--当输入参数有值,什么也不作
end if;
if (a is null) then --当输入参数无值
raise none_a; --触发存储过程定义的异常none_a
end if;
exception --由exception定义具体的异常处理代码
when none_a then --exception由诸多when then节构成
b:=888; --捕获了异常none_a,输出参数b为888
when others then
b:=111;
end;