0
次のoracle storedprocedureをC#で実行しようとしていますが、例外の「無効なパラメータのバインディング」が発生しています。私は "in_tab"の配列値を渡してspを実行しなければなりません。これを達成する方法は?oracledynamicparameterの配列値を渡す方法
のStoredProcedure:
procedure CGN_SERVICE (in_tab VARRAY(200),out_cdetail OUT sys_refcursor,
out_code OUT NUMBER, out_msg OUT VARCHAR2)
使用法:
using (UnitOfWorkScope scope = new UnitOfWorkScope(UnitOfWorkScopePurpose.Reading))
{
int[] mynums= new int[] { 1, 2, 3 };
var param = new OracleDynamicParameters();
param.Add("in_tab", mynums.ToArray(), dbType: OracleDbType.Array, direction: ParameterDirection.Input);
param.Add("out_detail", dbType: OracleDbType.RefCursor, direction: ParameterDirection.Output);
param.Add("out_code", dbType: OracleDbType.Int32, direction: ParameterDirection.Output);
param.Add("out_msg", dbType: OracleDbType.Varchar2, direction: ParameterDirection.Output, size: 200);
int res = scope.Connection.Execute("CGN_SERVICE", param, scope.Transaction, commandType: CommandType.StoredProcedure);
odr = param.Get<OracleRefCursor>("out_detail").GetDataReader();
}
まだ例外が発生しています –