当我从C#
代码中调用此过程时,该过程将不会执行。
我有两个参数-一个是输出参数,另一个是输入参数。
(Oracle SQL Developer)
SQL
代码:
PROCEDURE manual_process(j_cursor OUT outputcursor, p_manual_date
VARCHAR2)
IS
BEGIN
OPEN j_cursor FOR
SELECT i.*, TO_CHAR((i.maturity_date - 1), 'dd-MM-YYYY')
yesterday_date
FROM ntb_rpa_int_code_summary i
WHERE trunc(rec_mntn_date) = p_manual_date
AND rec_status = 'A'
AND process_status='N';
END;
Visual Studio代码(C#
):
OracleParameter[] param = { new OracleParameter("j_cursor",
OracleDbType.RefCursor), new OracleParameter("p_manual_date",OracleDbType.Varchar2)};
param[0].Direction = System.Data.ParameterDirection.Output;
param[1].Value = reg_date;
DataSet accountDs = dbObj.RunProcedureOracle("ntb_rpa_intrst_rate_code_chnge.manual_process", param, "accTbl");
答案 0 :(得分:0)
您的过程无法编译
PROCEDURE manual_process(j_cursor OUT outputcursor, p_manual_date
^^^^^^^^^^^^
PLS-00201: identifier 'OUTPUTCURSOR' must be declared
这将编译:
create or replace PROCEDURE manual_process(j_cursor OUT sys_refcursor, p_manual_date
VARCHAR2)
IS
BEGIN
OPEN j_cursor FOR
SELECT i.*, TO_CHAR((i.maturity_date - 1), 'dd-MM-YYYY')
yesterday_date
FROM ntb_rpa_int_code_summary i
WHERE trunc(rec_mntn_date) = p_manual_date
AND rec_status = 'A'
AND process_status='N';
END;
不确定它是否可以与您的C#程序一起使用,但我认为它看起来不错。