我目前在程序中有以下代码段
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;
答案 0 :(得分:6)
FORALL不是循环 - 所以你不能退出循环。如果要限制FORALL执行的工作,则需要限制从原始BULK COLLECT返回的数据。
FND_GLOBAL.apps_initialize()设置会话级全局变量。您可以在FORALL子句之前调用它(如果您希望插入使用新的全局值)或之后(如果您只想影响并发程序执行)。
答案 1 :(得分:1)
您可以尝试循环: -
FOR i IN 1 .. my_array.COUNT
LOOP
INSERT
INTO my_table
......
END LOOP;
commit;
apps.fnd_request.submit_request (application => 'PO',
program => 'REQIMPORT',
argument1 => l_p4,
argument2 => l_p5,
argument3 => l_p6,
argument4 => '',
argument5 => 'N',
argument6 => 'N');