Мое приложение C # (.NET 4.0) вызывает хранимую процедуру в базе данных PL / SQL. Я добавил пространство имен System.Data.OracleClient и добавил параметры, однако всякий раз, когда я его запускаю, я получаю исключение, в котором говорится, что параметры не совпадают.
Я считаю, что проблема в том, что мои параметры относятся к типу DbType.String или OracleType.VarChar. Чтение в Интернете показало, что люди используют другое перечисление под названием OracleDbType (например, OracleDbType.VarChar2).
Итак, как мне получить доступ к этому перечислению?
OracleParameter returnParam = new OracleParameter("result", DbType.Xml);
returnParam.Direction = ParameterDirection.ReturnValue;
objCmd.Parameters.Add(returnParam);
OracleParameter param1 = new OracleParameter("pivequivalentinstrument", DbType.String);
param1.Direction = ParameterDirection.Input;
param1.Value = EquivalentInstrKey;
objCmd.Parameters.Add(param1);
2 ответа
OracleDbType - это ODP: Oracle.DataAccess.Client, а не устаревший System.Data.OracleClient, попробуйте использовать ODP, и он должен будь там.
Вам нужно будет преобразовать ваш параметр непосредственно в OracleParameter
, чтобы получить доступ к свойству OracleDbType
.
param1
, например, должен иметь свойство OracleDbType
. Не так ли?
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.