在一个包中并行调用同一plsql过程不止一次

在一个包中并行调用同一plsql过程不止一次,plsql,plsqldeveloper,Plsql,Plsqldeveloper,有一个plsql包“OMX_BEACON_MIG”,我在哪里呼叫 PROCEDURE handle_NR_Site( i_old_plan_inst_id NUMBER, i_new_plan_inst_id NUMBER, i_old_act_id NUMBER, i_new_act_id NUMBER ) 要处理操作id,即,如果我有4个操作id,那么我将调用此过程4次,因为每个操作的“i_old_plan_inst_id”、“i_n

有一个plsql包“OMX_BEACON_MIG”,我在哪里呼叫

PROCEDURE handle_NR_Site(
    i_old_plan_inst_id NUMBER,
    i_new_plan_inst_id NUMBER,
    i_old_act_id       NUMBER,
    i_new_act_id       NUMBER )
要处理操作id,即,如果我有4个操作id,那么我将调用此过程4次,因为
每个操作的“i_old_plan_inst_id”、“i_new_plan_inst_id”、“i_old_act_id”、“i_new_act_id”都是不同的

是否有任何解决方案,我只能调用此过程一次,并且所有4个操作都处理一次

或者是否存在并行调用此函数而不是逐个调用的方法?
请指导。

Oracle有一个非常好的实用程序dbms\u调度器,可以并行运行作业。您可以使用不同的参数调用下面的函数四次,以并行执行它们

dbms_scheduler.create_job(job_name => dbms_scheduler.generate_job_name('MY_JOB_'),
   job_type => 'PLSQL_BLOCK',
   job_action => 'begin  handle_NR_Site(i_old_plan_inst_id => param1, i_new_plan_inst_id => param2, i_old_act_id => param3, i_new_act_id => param4 ); end;',
   comments => 'Thread 1 descriptionn',
   enabled => true,
   auto_drop => true);
作业将在后台运行。查询表
DBA\u调度程序\u作业\u运行\u详细信息
以获取执行状态

有关更详细的说明,请查看以下链接:

Oracle有一个非常好的实用程序dbms\u调度器,可以并行运行作业。您可以使用不同的参数调用下面的函数四次,以并行执行它们

dbms_scheduler.create_job(job_name => dbms_scheduler.generate_job_name('MY_JOB_'),
   job_type => 'PLSQL_BLOCK',
   job_action => 'begin  handle_NR_Site(i_old_plan_inst_id => param1, i_new_plan_inst_id => param2, i_old_act_id => param3, i_new_act_id => param4 ); end;',
   comments => 'Thread 1 descriptionn',
   enabled => true,
   auto_drop => true);
作业将在后台运行。查询表
DBA\u调度程序\u作业\u运行\u详细信息
以获取执行状态

有关更详细的说明,请查看以下链接:

您可以创建4个临时计划作业,但如果您的代码需要在4个作业完成后继续,则需要编写一些监控代码,以检查作业何时完成,并且您必须处理其中一个或多个作业失败的情况。或者,您可以查看handle_nr_site过程,看看是否有任何方法可以将其转换为同时处理多个操作。您可以创建4个临时计划作业,但如果您的代码需要在4个作业完成后继续,则需要编写一些监控代码,以检查作业何时完成,你必须处理其中一个或多个失败的情况。或者,您可以查看handle_nr_site过程,看看是否有任何方法可以将其转换为同时处理多个操作。