2011-12-16 1 views
0

Je transfère un tas de code des pilotes ODP.NET vers DevArt dotConnect for Oracle. Je suis tombé sur le code suivant qui ne compile:Portage de ODP.NET à dotConnect - quel est l'équivalent de la propriété OracleParameter.CollectionType?

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

Il semble Devart.Data.Oracle.OracleParameter n'a pas une propriété CollectionType. Que devrais-je utiliser ici à la place?

Répondre

2

De here:

Devart.Data.Oracle.OracleParameter n'a pas la propriété CollectionType . Si vous définissez Devart.Data.Oracle.OracleParameter.ArrayLength, alors ce paramètre sera PL/SQL AssociativeArray (table PL/SQL). Pour plus de détails s'il vous plaît se référer http://www.devart.com/dotconnect/oracle/docs/?PlSqlTable.html

En bref: il suffit de mettre ArrayLength et Devart traite automatiquement comme PLSQLAssociativeArray

Votre code doit donc être:

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