存储过程返回游标,如何处理这种使用OLEDB在C# [英] Stored Proc returns a Cursor, how to handle this using OLEDB in C#
问题描述
我使用OLEDB驱动程序来调用Oracle数据库的存储过程。
中的存储过程返回游标作为输出。
我能够调用使用Oracle数据源(System.Data.Oracle.OracleCommand)这个存储过程,但我不知道如何调用使用OLEDB数据源此SP。关于如何指定SP使用OLEDB将不胜感激返回一个指针作为输出任何帮助。
I am using OLEDB driver to call a Stored Procedure in Oracle DB. The Stored Proc returns a cursor as the output. I am able to call this Stored Proc using Oracle Data Source (System.Data.Oracle.OracleCommand), However I do not know how to call this SP using the OLEDB data source. Any help on how to specify the SP is returning a cursor as the output using OLEDB would be greatly appreciated.
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对象上的一个输出光标。
I do not know how to specify the parameter "trades" is an output cursor on the OledbCommand object.
在此先感谢!
推荐答案
我有一个查询Oracle数据库的问题,PLSQLRSet = 1解决了我的问题。我只是把它添加到我的连接字符串(结尾)。
I was having an issue querying an Oracle database,and PLSQLRSet=1 resolved my problem. I just appended it to my connection string (ending with ;).
卡洛斯一Merighe
Carlos A Merighe.
这篇关于存储过程返回游标,如何处理这种使用OLEDB在C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!