建某个存储过程,要求执行成功后,返回:正确 李四,不成功返回:错误 李四
而这返回值是存储过程执行成功或否,怎样判断执行成功与否呢??
按以下方式写,就提示:identifier 'sqlca.sqlcode'must be declared
create or replace pocedure sp_vv( n_name varchar2, err out varchar2 )
as
begin
insert into stu_master (name) values (n_name) ;
commit;
if sqlca.sqlcode = 0 then
err:=('正确'||name||sqlerrm);
else
err:=('错误'||name||sqlerrm);
end if;
exception
...
end sp_vv;
------解决思路----------------------
加个输出参数FLG
FLG OUT VARCHAR2
FLG := 1;赋值
EXCEPTION
WHEN OTHERS THEN
BEGIN
FLG := 0;
ROLLBACK;
DBMS_OUTPUT.PUT_LINE('数据处理失败'
------解决思路----------------------
SQLERRM);
END;
1是成功 0是失败
------解决思路----------------------
好像不用sqlca.的,直接sqlcode应该可以了
------解决思路----------------------
BEGIN
--执行代码块
END
EXCEPTION
WHEN OTHERS THEN
--出错处理代码
其实你整个存储过程都是包含在一个BEGIN、END对里面的,当然能捕获所有处理过程中的异常了,如果没有异常就是正常执行完毕了
------解决思路----------------------
如果存储过程没有抛出未捕获的异常,并且执行结果符合业务预期要求,就可以说成功。
如果抛出的异常被你在过程中捕获了,还是算成功的,因为程序的执行在你的预期范围内。
如果过程执行没有报异常,但是没能正确实现业务要求,也不能说成功,是不是?