如何将组事务提交到oracle中的存储过程
我有一个将数据插入表的过程,并在最后有一个commit语句。它提交对过程的每个调用并插入数据如何将组事务提交到oracle中的存储过程,oracle,plsql,transactions,commit,Oracle,Plsql,Transactions,Commit,我有一个将数据插入表的过程,并在最后有一个commit语句。它提交对过程的每个调用并插入数据 create or replace procedure abc begin insert stmt; commit; end; 现在,我想知道是否有一种方法可以通过事务结束时的过程(组事务)将多个插入提交到表中。这意味着,我不希望每次调用过程时都提交(从前端),但在多次调用过程后,我需要提交该过程。尝试使用参数创建过程。该参数可以采用值:Y或N(或您需要的方式),并基于该值,您可以提交,也可
create or replace procedure abc
begin
insert stmt;
commit;
end;
现在,我想知道是否有一种方法可以通过事务结束时的过程(组事务)将多个插入提交到表中。这意味着,我不希望每次调用过程时都提交(从前端),但在多次调用过程后,我需要提交该过程。尝试使用参数创建过程。该参数可以采用值:Y或N(或您需要的方式),并基于该值,您可以提交,也可以不提交 例如:
create or replace procedure abc (commit_y_n varchar2) as
begin
insert stmt;
if abc.commit_y_n == 'Y' then {
commit;
}
end;
同时从过程中删除提交。将其移动到调用进程。例如:
Create or replace procedure procedure abc(p1 varchar2, p2 ...)
is
begin
insert ....
end abc;
然后,调用过程会变成类似于:
begin
for vars in (select c1, c2, ... from tab)
loop
....
abc(vars.v1, vars.c2, ...);
end loop;
COMMIT; -- only when transaction is complete;
end ;
注;调用过程不必是plsql,它可以是任何可以建立数据库连接的东西。如何执行该过程?