从ODP.NET移植到dotConnect - OracleParameter.CollectionType属性的等价物是什么?

时间:2011-12-16 22:16:27

标签: .net oracle odp.net devart dotconnect

我正在将一堆代码从ODP.NET驱动程序移植到DevArt dotConnect for Oracle。我遇到了以下不再编译的代码:

OracleParameter parameter = new OracleParameter("state", OracleDbType.Number);
parameter.CollectionType = OracleCollectionType.PLSQLAssociativeArray; //Red Squiggly
parameter.Direction = ParameterDirection.Input;
parameter.Value = State.ToArray();
parameter.Size = State.Count;
command.Parameters.Add(parameter);

似乎Devart.Data.Oracle.OracleParameter没有CollectionType属性。我应该在这里使用什么呢?

1 个答案:

答案 0 :(得分:2)

来自here

  

Devart.Data.Oracle.OracleParameter没有CollectionType   属性。如果你设置了   Devart.Data.Oracle.OracleParameter.ArrayLength,然后是这个参数   将是PL / SQL AssociativeArray(PL / SQL表)。更多细节   请参考   http://www.devart.com/dotconnect/oracle/docs/?PlSqlTable.html

简而言之:只需设置ArrayLength,Devart会自动将其视为PLSQLAssociativeArray

您的代码应该是:

OracleParameter parameter = new OracleParameter();
parameter.ParameterName = "state";
parameter.Direction = ParameterDirection.Input;
parameter.OracleDbType = OracleDbType.Number; 
parameter.ArrayLength = State.Count;
parameter.Value = State.ToArray();
command.Parameters.Add(parameter);