Я объявил таблицу сбора и запись в спецификации PLSQL.
type loan_recov_rec is record(v_prncpl_ed_cd number(3),v_prncpl_recov number (7),v_int_ed_cd number(3), v_int_recov,number(5)); type loan_recov_tbl is table of loan_recov_rec index by binary_integer;
процедура pr_final_settlement(v_loan_recov_tbl в Loan_rekov_tbl);
Итак, я передаю параметр Array со страницы C #
cmd.ArrayBindCount = v_loan_recov_tbl.Length;
Oracle.DataAccess.Client.OracleParameter P_loan_recov = new Oracle.DataAccess.Client.OracleParameter("v_loan_recov_tbl", Oracle.DataAccess.Client.OracleDbType.Int32);
P_loan_recov.Direction = ParameterDirection.Input;
P_loan_recov.CollectionType = Oracle.DataAccess.Client.OracleCollectionType.PLSQLAssociativeArray;
P_loan_recov.Value = v_loan_recov_tbl;
cmd.Parameters.Add(P_loan_recov);
используя приведенный выше код, он не работает, он получает ошибку Unable to cast object of type 'System.Int32' to type 'System.Array'. v_loan_recov_tbl is an Array Parameter.
Слышите, я использую тип данных, поскольку OracleDbType.Int32
это правильно, или мне нужно удалить другой тип данных. Я объявляю входной параметр в процедуре как таблицу