8i里面触发器中不可以commit的
commit是将当前的事务进行提交,数据库将数据写回数据文件
其它会话才可以看到修改后的数据。

解决方案 »

  1.   

    --在过程中可以用commit,在触发器中不允许用commit;但是在写过程的时候如果每写一个insert就有一个commit.那就提交了.如果其他的出错了就不能回滚了.所以为了保证事务的一致性, 一般是在最后commit;create or replace procedure proc_name 
    as 
    begin 
        insert into .........;
        insert into .........
        ....
        commit;    <--  一次提交
        exception 
            when others then 
                rollback;    <-- 出错全部回滚
    end;
      

  2.   

    加commit就提交,不加commit就不提交,
    你的数据如果别人能看到说明提交了,如果你能看到,别人看不到说明没有提交,仍然在事务中,可能会被回滚,所有业务结束必须commit