Портирование из ODP.NET в dotConnect - что эквивалентно свойству OracleParameter.CollectionType? - PullRequest
0 голосов
/ 17 декабря 2011

Я портирую кучу кода из драйверов ODP.NET в DevArt dotConnect для 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 Ответ

2 голосов
/ 17 декабря 2011

С здесь :

Devart.Data.Oracle.OracleParameter не имеет CollectionType имущество. Если вы установите Devart.Data.Oracle.OracleParameter.ArrayLength, тогда этот параметр будет PL / SQL AssociativeArray (PL / SQL Table). Больше подробностей пожалуйста, обратитесь 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);
...