2016-03-11 24 views
1

我有下一個腳本,我試圖在Pentaho數據集成中作爲作業/轉換運行 - 它來自Toad,它按預期工作。如何調用Pentaho中的多個Oracle存儲過程(PDI)

begin 
SOME_PACKAGE.SOMESTOREDPROCEDURE; 
SOME_PACKAGE2.SOMESTOREDPROCEDURE2; 
end; 
/

我試着用兩個步驟調用DB程序(一個接一個),但它不會以同樣的方式行事 - 第一個程序是設置一些PARAMS和第二試圖使用它們,但兩個步驟 - 第二個的參數沒有設置。

我試着用步驟執行SQL腳本,但似乎我無法弄清楚如何從那裏調用這些過程。 第一個過程有一個可選參數,第二不

我試圖與

begin 
SOME_PACKAGE.SOMESTOREDPROCEDURE; 
SOME_PACKAGE2.SOMESTOREDPROCEDURE2; 
end; 

(得到ORA-06550:行2,列32:PLS-00103:出現符號「最終「)文件的

或者

SOME_PACKAGE.SOMESTOREDPROCEDURE; 
SOME_PACKAGE2.SOMESTOREDPROCEDURE2; 

(得到ORA-00900:無效的SQL語句)

或者

CALL SOME_PACKAGE.SOMESTOREDPROCEDURE; 
CALL SOME_PACKAGE2.SOMESTOREDPROCEDURE2; 

GET(ORA-00911:無效字符)

或者

EXEC SOME_PACKAGE.SOMESTOREDPROCEDURE; 
EXEC SOME_PACKAGE2.SOMESTOREDPROCEDURE2; 

(得到ORA-00900:無效的SQL語句)

或者相同,但加入架構前綴 - 相同的結果。

+0

你檢查'執行的每一行?'複選框,在你已經嘗試(在'執行SQL script')第一個選項? – user4637357

+0

您是否考慮編寫一個調用第一個和第二個過程的包裝過程?從Pentaho這將被視爲一筆交易 – kevinsky

+0

我檢查了'每行執行',但沒有幫助。 事情是,我有20個不同的'SOMESTOREDPROCEDURE2'的情況,我不認爲爲它們寫封裝將是一個好主意。我想我會嘗試新的方法來解決這個問題。無論如何,這聽起來很奇怪,在'執行SQL腳本'你不能寫所有東西。 – Erinne

回答

0

在PDI中,所有步驟都在並行中執行。因此,如果您撥打2或更多DB程序步驟,它將並行執行。根據你的問題,這不是你打算實現的。實現的唯一方法是添加兩個單獨的轉換文件(.ktr),並在每個文件中調用「數據庫過程」步驟。

希望這有助於:)

+0

我以這種方式嘗試過 - 有兩個轉換的作業,其中每個人都調用一個數據庫過程,但結果是再次,當涉及到第二個存儲過程時,它看到參數不變。這是不是可以通過** Execute SQL Script **步驟完成? – Erinne