3

OLEDB ドライバーを使用して Oracle DB のストアド プロシージャを呼び出しています。Stored Proc は、出力としてカーソルを返します。Oracle データ ソース (System.Data.Oracle.OracleCommand) を使用してこのストアド プロシージャを呼び出すことができますが、OLEDB データ ソースを使用してこの SP を呼び出す方法がわかりません。SP を指定する方法に関するヘルプは、OLEDB を使用した出力としてカーソルを返すことで、大歓迎です。


private static OracleCommand CreateOraStoredProcCmd()
                {
                        string storedProcName = "pkg_query.prc_get_my_trades";
                        OracleCommand cmd = new OracleCommand(storedProcName);
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.AddWithValue("book_list", "Jan, Feb");
                        cmd.Parameters.AddWithValue("maturity_date_start", DateTime.Now.ToString("dd-MMM-yyyy"));
                        cmd.Parameters.AddWithValue("maturity_date_end", DateTime.Now.ToString("dd-MMM-yyyy"));
                        cmd.Parameters.AddWithValue("ccy_list", "GBP,USD");
                        cmd.Parameters.Add("trades", OracleType.Cursor).Direction = ParameterDirection.Output;
                        return cmd;
                }

OledbCommand オブジェクトの出力カーソルである "trades" パラメータを指定する方法がわかりません。

前もって感謝します!

4

2 に答える 2

2

Oracle Provider for OLE DB は、カーソルを参照するすべてのパラメーターを ADO レコードセットに変換しますがPLSQLRSet=1、接続文字列に追加されている場合のみです。

于 2009-06-15T00:55:57.033 に答える
1

Oracle データベースのクエリで問題が発生していましたが、PLSQLRSet=1 で問題が解決しました。接続文字列に追加しました(;で終わります)。

カルロス・メリゲ。

于 2012-08-22T15:41:22.510 に答える