我在oracle中有一个存储过程(如果相关,它会安排一次作业来运行另一个过程)。该作业将调用另一个运行了几分钟的存储过程,并执行插入更新和删除操作,还使用循环。现在,当长过程正在运行时,如果还有另一个要运行的调用,是否可以防止它们同时执行?甚至更好的是,让第二个程序在前一个程序完成后执行,例如将它们排队?
为了防止两个存储过程同时运行,您可以使用DBMS_LOCK获得排他锁(或尝试尝试更新给定表中的同一行)。