【发布时间】:2019-09-19 00:38:26
【问题描述】:
当我从C# 代码调用此过程时,该过程不会被执行。
我有两个参数——一个是输出参数,另一个是输入参数。
(Oracle SQL 开发人员)
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");
【问题讨论】:
-
只是这个存储过程不起作用吗?其他存储过程是否有效?
-
你试过在sql中执行storedprocedure,它在那里工作吗?
-
其他程序确实有效,但调用时这个程序无效
-
此 sql 代码在 SQL Navigator 中有效,但在 ORACLE sql developer 中无效
-
当您说“不起作用”时,您的实际意思是什么?您收到 Oracle 错误吗?一个空的结果集? C# 异常?另外,为什么将输入数据作为字符串而不是日期传递?从
trunc(rec_mntn_date)我猜你是在比较它和一个日期列。
标签: c# oracle stored-procedures plsql