PLSQL-如何退出FORALL循环

Jåc*_*cob 0 sql oracle plsql stored-procedures oracle11g

我在一个过程中有以下代码片段,当前 apps.fnd_global. apps_initialize方法执行是FORALL循环的一部分.

我想apps.fnd_global. apps_initialize不要在循环中打电话.插入完成后,apps.fnd_global. apps_initialize应该只执行一次.

我怎样才能做到这一点?

FORALL i IN 1 .. my_array.COUNT
         INSERT
           INTO my_table
            ......
      COMMIT;         

         apps.fnd_request.submit_request (application   => 'PO',
                                          program       => 'REQIMPORT',
                                          argument1     => l_p4,
                                          argument2     => l_p5,
                                          argument3     => l_p6,
                                          argument4     => '',
                                          argument5     => 'N',
                                          argument6     => 'N');
      COMMIT;
Run Code Online (Sandbox Code Playgroud)

Chr*_*mer 6

FORALL不是循环 - 所以你不能退出循环.如果要限制FORALL执行的工作,则需要限制从原始BULK COLLECT返回的数据.

FND_GLOBAL.apps_initialize()设置会话级全局变量.您可以在FORALL子句之前调用它(如果您希望插入使用新的全局值)或之后(如果您只想影响并发程序执行).