2012-03-05 238 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運行程序在後臺

您是否需要在過程結束時通知客戶端?

如果這還不夠,還需要更多信息。