Pawan
Pawan

Reputation: 83

TABLE OF NUMBERS Oracle stored procedure Parameter, How to pass it from C#

I am looking for a way to pass the parameter type 'TABLE OF NUMBER' to ORACLE SP from C#. I am using 'Oracle.DataAccess'. I tried using the UDT method but its not working

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);

Upvotes: 2

Views: 1879

Answers (1)

Pawan
Pawan

Reputation: 83

It worked out in the following way..

   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);

Upvotes: 1

Related Questions