ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 如何在pl/sql中捕获ora-01013错误

如何在pl/sql中捕获ora-01013错误

原创 Linux操作系统 作者:nmgzw 时间:2019-02-26 07:24:05 0 删除 编辑
http://www.itpub.net/thread-1418343-1-1.html
这里有人问到了,试了下,这样可以做到。

declare
  cacel_create EXCEPTION;
  PRAGMA EXCEPTION_INIT(cacel_create, -1013);
  v_dt_bak varchar2(20) := 'tt_bak';
  v_dt     varchar2(20) := 'tt';
begin
  begin
    /* v_dt := 'tt';
    v_dt_bak := 'tt_bak';*/
    execute immediate 'create table ' || v_dt_bak || '(id number)';
    /* execute immediate 'insert into tt select object_id from all_objects union select object_id from all_objects union select object_id from all_objects '; */
    dbms_lock.sleep(10);
  exception
    when cacel_create then
       raise;
     execute immediate 'rename ' || v_dt_bak || ' to ' || v_dt || '';
   
  end;
end;

注意raise的位置,必须有,否则最后的execute immediate无法正确执行

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25702/viewspace-692601/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 郁闷得ora-00942
请登录后发表评论 登录
全部评论

注册时间:2002-10-18

  • 博文量
    71
  • 访问量
    59354