存储过程怎么判断执行成功??

sanyuan35 2014-12-12 03:18:34
建某个存储过程,要求执行成功后,返回:正确 李四,不成功返回:错误 李四
而这返回值是存储过程执行成功或否,怎样判断执行成功与否呢??
按以下方式写,就提示: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;
...全文
2754 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
1、返回参数 2、记录日志
zha_sir 2015-01-19
  • 打赏
  • 举报
回复
能够正常执行完,达到预期效果就算执行成功了
RUMBLE_ZHENG 2015-01-19
  • 打赏
  • 举报
回复
如果存储过程没有抛出未捕获的异常,并且执行结果符合业务预期要求,就可以说成功。 如果抛出的异常被你在过程中捕获了,还是算成功的,因为程序的执行在你的预期范围内。 如果过程执行没有报异常,但是没能正确实现业务要求,也不能说成功,是不是?
美到心痛 2015-01-16
  • 打赏
  • 举报
回复
sqlca.sqlcode改成sqlcode
aoxuelingshuang 2015-01-16
  • 打赏
  • 举报
回复
在没有返回值的情况下,运行结束不抛异常应该就是成功了。如果你不放心,你可以在存储过程的后面增加返回值return进行返回,根据设置的返回值判断是否执行成功。
gaofei8704 2014-12-17
  • 打赏
  • 举报
回复
增加返回参数,在程序逻辑主体最后加 return ,在程序调用时可以通过return判断是否执行成功。
rokerker 2014-12-16
  • 打赏
  • 举报
回复
BEGIN --执行代码块 END EXCEPTION WHEN OTHERS THEN --出错处理代码 其实你整个存储过程都是包含在一个BEGIN、END对里面的,当然能捕获所有处理过程中的异常了,如果没有异常就是正常执行完毕了
kanebluba 2014-12-16
  • 打赏
  • 举报
回复
全部走完不抛异常就是成功了
anhy 2014-12-12
  • 打赏
  • 举报
回复
好像不用sqlca.的,直接sqlcode应该可以了
dilemmapr 2014-12-12
  • 打赏
  • 举报
回复
加个输出参数FLG FLG OUT VARCHAR2 FLG := 1;赋值 EXCEPTION WHEN OTHERS THEN BEGIN FLG := 0; ROLLBACK; DBMS_OUTPUT.PUT_LINE('数据处理失败' || SQLERRM); END; 1是成功 0是失败

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧