在一个循环体中,我只要执行完execute immediate语句时,就跳出了调试,可是我的循环还没结束啊,除了把execute immediate注释掉还有什么别的方法让它不跳出调试?

解决方案 »

  1.   

    在execute immediate后面加exit试试
      

  2.   

    create or replace procedure ct AUTHID   CURRENT_USER as
    sql_stmt varchar(3000);
    i integer :=0;
    tbname tabs.table_name%type;
    table_n varchar(100);begin
    for tbname in (select table_name tn from tabs)
    loop
    i:=i+1;
    table_n :=tbname.tn;
    sql_stmt :='CREATE OR REPLACE TRIGGER ld_'||i||' AFTER INSERT OR UPDATE OR DELETE ON '||tbname.tn||' REFERENCING NEW AS N FOR EACH ROW
    declare tbn varchar(255) := '''||tbname.tn||''' ;
    job1 number; begin
     redirect(''在表''||TBN||''中'');
     if updating then redirect(''***更新***了一条记录'');
     elsif deleting then redirect(''***删除***了一条记录'');
     else redirect(''***插入**了一条记录'');
     end if;dbms_job.submit(job1,''justDoIt('''''||table_n||''''');'',sysdate,null);
     dbms_output.put_line('''');
     end;';
    execute immediate sql_stmt;end loop;
    end;
      

  3.   

    只要一执行完execute immediate sql_stmt;
    就跳出调试了,把这句注释掉了就正常循环了。