2010-06-24 39 views
0

我使用DB2 9.7 for Linux。存儲過程以PL/SQL(Oracle的編程語言)實現,因此記錄集是一個輸出參數(SYS_REFCURSOR)。如何從C#調用DB2存儲過程?

我不知道如何在我的C#代碼中聲明這個參數。

DB2Parameter parameter = ((DB2Command)command).CreateParameter(); 

parameter.ParameterName = "cv_1"; 
parameter.Direction = ParameterDirection.Output; 
parameter.DbType = ... 

回答

1

結果集沒有DB2Type枚舉。在他們的API中,執行此操作的方式是使用DB2Command.ExecuteReader方法執行該命令。您可能必須將PL/SQL更改爲返回sys_refcursor的函數,而不是具有sys_refcursor參數的過程。

+0

我試過這個,但我不知道如何從C#調用函數。我有這個錯誤: DB2:ERROR [42884] [IBM] [DB2/LINUXX8664] SQL0440N找不到具有兼容參數的「PROCEDURE」類型的名爲「FUN_TEST」的授權例程。 SQLSTATE = 42884 – Jorge 2010-07-13 15:17:36

+0

函數返回一個值,並用關鍵字'FUNCTION'而不是'PROCEDURE'聲明。查看您獲得更多信息的PL/SQL文檔。 – 2010-07-14 16:15:10