static void Main(string[] args)
{
using (var cn = new OracleConnection(cs))
{
var p = new OracleDynamicParameters();
p.Add("n", 1234, OracleDbType.Decimal);
p.Add("rc",
dbType: OracleDbType.RefCursor,
direction: ParameterDirection.Output);
//使用 T-SQL Script 測試 Ref Cursor
var cmd = @"
declare
begin
open :rc for select :n as n, sysdate as d from dual;
end;";
var m = cn.QueryMultiple(cmd, p);
var data = m.Read();
Console.WriteLine(JsonConvert.SerializeObject(data));
/*
--假設 Stored Procedure 如下
create or replace procedure MyProc(
n NUMBER,
rc OUT SYS_REFCURSOR
)
as
begin
open rc
for select n as N, sysdate as D
from dual;
end;
*/
//Stored Procedure記得指定commandType
m = cn.QueryMultiple("MyProc", p, commandType: CommandType.StoredProcedure);
data = m.Read();
Console.WriteLine(JsonConvert.SerializeObject(data));
}
Console.Read();
}