2012-03-05 240 views
0

我有一个包中包含许多用于填充不同表的存储过程。 这个软件包在一个Excel文件的Uplaod时被调用。 现在假设我有五个步骤SP1,SP2,SP3,SP4,SP5一个封装PKG内在Oracle中并行执行存储过程

Create or replace package PKG 
declare 
    begin 
    sp1; 
    sp2;--shd run without waiting for SP1 to get finish.. 
    sp3;--shd run without waiting for SP2 to get finish.. 
    sp4;--shd run without waiting for SP3 to get finish.. 
    sp5;--shd run without waiting for SP4 to get finish.. 
    end; 

现在,我想要的是执行所有的SP一起针锋相对意味着SP2 SHD不等待SP1,以便获得完整.. 有没有办法做这样的“程序并行执行” ..

我使用PL/SQL的Oracle 9i中/ 10G

感谢

+2

你可能会在这里找到答案http://stackoverflow.com/questions/576802/can-we-use-threading-in-pl-sql – 2012-03-05 07:36:55

+1

在这里检查http://www.williamrobertson.net/feed/2007 /10/parallel-plsql-launcher.html – 2012-03-05 07:45:49

回答

2

你混合了包的依赖性和执行depenndencies。 ..
有很多方法,可以让你在并行运行一些程序:

  • 您可以打开多个会话,并运行从每个
  • 一个程序的另一种方法将使用DBMS_JOB运行程序在后台

您是否需要在过程结束时通知客户端?

如果这还不够,还需要更多信息。