如何使用dapper和c#检索多个sys_refcursor?
我想使用Dapper从Oracle DB中检索多个SYS_REFCURSOR。 我的PL/SQL代码下面
procedure GetData2 (p_result out sys_refcursor, p_result2 out sys_refcursor)
is
begin
open p_result for
select '1' col1, '2' col2 from dual
union all
select '11' col1, '22' col2 from dual;
open p_result2 for
select '3' col1, '4' col2 from dual;
end;
,我的C#代码在此C#代码下方
using OracleConnection connection = new OracleConnection();
connection.ConnectionString = "";
connection.Open();
OracleDynamicParameters parameters = new OracleDynamicParameters();
parameters.Add(name: "p_result", dbType: OracleMappingType.RefCursor, direction: ParameterDirection.Output);
parameters.Add(name: "p_result2", dbType: OracleMappingType.RefCursor, direction: ParameterDirection.Output);
var reader = connection.QueryMultiple("TEST_PACKAGE.GetData2", param: parameters, commandType: CommandType.StoredProcedure);
IEnumerable<MyClasss> dt = reader.Read<MyClasss>();
foreach (var item in dt)
{
Console.WriteLine(item.col1);
}
仅给我P_Result表结果。 如何使用dapper检索两个sys_refcursor结果?
I want to retrieve multiple sys_refcursors from oracle db using dapper.
My PL/SQL code below
procedure GetData2 (p_result out sys_refcursor, p_result2 out sys_refcursor)
is
begin
open p_result for
select '1' col1, '2' col2 from dual
union all
select '11' col1, '22' col2 from dual;
open p_result2 for
select '3' col1, '4' col2 from dual;
end;
And my c# code is below
using OracleConnection connection = new OracleConnection();
connection.ConnectionString = "";
connection.Open();
OracleDynamicParameters parameters = new OracleDynamicParameters();
parameters.Add(name: "p_result", dbType: OracleMappingType.RefCursor, direction: ParameterDirection.Output);
parameters.Add(name: "p_result2", dbType: OracleMappingType.RefCursor, direction: ParameterDirection.Output);
var reader = connection.QueryMultiple("TEST_PACKAGE.GetData2", param: parameters, commandType: CommandType.StoredProcedure);
IEnumerable<MyClasss> dt = reader.Read<MyClasss>();
foreach (var item in dt)
{
Console.WriteLine(item.col1);
}
This c# code only gives me p_result table result.
How can I retrieve two sys_refcursor results using dapper?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须调用一种方法,以转移到数据读取器中的下一个结果。该方法称为
.nextresult()
。尝试以下代码:
You have to call a method to move to the next result in your data reader. The method is called
.NextResult()
.Try following code: