2010-06-25 40 views
2

林試圖調用從使用以下代碼執行使用ADO(C#)Oracle存儲程序

Connection conn = new Connection(); 
Recordset rs = new Recordset(); 
conn.Open("Provider=MSDAORA;User Id=username;Password=password;Data Source=DB;", null, null, 0); ; 
rs.Open("sproc 'abc', 'xyz'", conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, -1); 

其中ABC和XYZ是輸入參數C#應用程序一個Oracle存儲PROC ..

然而,當我嘗試運行它時,我收到「無效的SQL語句異常」。

是否有任何其他方式來執行oracle存儲過程。我可以在上述同樣的方式執行MSSQL存儲的特效還是正常的Oracle查詢..

我甚至使用createparameter試過了,但是這並沒有幫助

感謝, 山姆

回答

1

抓住甲骨文ODP.NET工具:http://www.oracle.com/technology/software/tech/windows/odpnet/index.html

他們是我使用從我的ASP.NET應用程序

Check here與我們的Oracle數據庫進行交互的示例在C#中調用Oracle存儲過程。

基本上與包:

// Create oracle command object for the stored procedure 
OracleCommand cmd = new OracleCommand("HR_DATA.GETCURSORS", conn); 
cmd.CommandType = CommandType.StoredProcedure; 

// Enter a parameter for the procedure 
OracleParameter dep_id = new OracleParameter(); 
dep_id.OracleDbType = OracleDbType.Decimal; 
dep_id.Direction = ParameterDirection.Input; 
dep_id.Value = 60; 
cmd.Parameters.Add(dep_id); 

// Add more parameters ... 

// Execute the stored procedure 

Here's a link to the API documentation

+0

+1。微軟已棄用他們自己的Oracle驅動程序,並建議使用Oracle的ODP.NET。 – 2010-06-25 14:29:14

0

沒關係..顯然我錯過了周圍的輸入參數括號...

感謝, 山姆