我正在寻找一种将参数类型'TABLE OF NUMBER'从C#传递给ORACLE SP的方法。我正在使用“ Oracle.DataAccess”。我尝试使用UDT方法,但无法正常工作

Oracle.DataAccess.Client.OracleParameter param1 = new Oracle.DataAccess.Client.OracleParameter("IN_ACCT_ID_ARR", Oracle.DataAccess.Client.OracleDbType.Ref, ParameterDirection.Input);
param1.CollectionType = Oracle.DataAccess.Client.OracleCollectionType.PLSQLAssociativeArray;
//  param1.UdtTypeName = "num_list";
param1.Value = acctId;
cmd.Parameters.Add(param1);

最佳答案

它是通过以下方式解决的:

   cmd.CommandType = CommandType.StoredProcedure;

            OracleParameter inputParameter = new OracleParameter();
            inputParameter.OracleDbType = OracleDbType.Int32;
            inputParameter.Direction = ParameterDirection.Input;
            inputParameter.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
            inputParameter.Value = acctId.ToArray();

            cmd.Parameters.Add(inputParameter);

关于c# - 数字表Oracle存储过程参数,如何从C#传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20339457/

10-11 04:43