2011-02-01 115 views
0

我與signiture一個Oracle存儲過程:(包的一部分:承包人),可執行的Oracle存儲過程

我試圖執行它想:

execute Contractor.usp_sel_contractors; 

我已經習慣了MSSQLSERVER。這似乎應該是海峽前進。

我不斷收到錯誤:

Invalid Sql Statement 

謝謝!

+0

什麼是 「sel_contractor」 - 一個參考遊標? – 2011-02-01 13:31:29

+0

沒有它的用​​戶存儲過程。作爲承包商的一部分。 `執行Contractor.usp_sel_contractors`也有同樣的效果 – kralco626 2011-02-01 13:33:06

+0

不,我問的是「sel_contractor」,而不是「usp_sel_contractor」 - 「OUT」後面的單詞。 – 2011-02-01 13:35:58

回答

3

假設sel_contractor是一個REF CURSOR類型,你可以在SQL Plus中做到這一點:

var rc refcursor 

exec usp_sel_contractors(:rc) 

print rc 
1

我不知道爲什麼你會得到那個特定的錯誤信息,但顯而易見的問題是該過程有一個參數,你沒有通過一個。由於它是一個OUT參數,因此您需要傳遞一個適當類型的變量,該變量將由過程填充。

例如:

DECLARE 
    my_contractors sel_contractor; 
BEGIN 
    usp_sel_contractors(my_contractors); 

    // Do something with the contents of my_contractors here 
END; 
/