Stored Proc返回一个Cursor,如何在C#中使用OLEDB来处理它

我正在使用OLEDB驱动程序调用Oracle DB中的存储过程。 存储过程将光标作为输出返回。 我可以使用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; } 

我不知道如何指定参数“trades”是OledbCommand对象上的输出光标。

提前致谢!

OLE DB for OLE DB将引用游标的任何参数转换为ADO Recordset,但仅当PLSQLRSet=1添加到连接字符串时。

我在查询Oracle数据库时遇到问题,而PLSQLRSet = 1解决了我的问题。 我只是将它附加到我的连接字符串(以;结尾)。

Carlos A Merighe。