У нас есть старое приложение, которое работает с базой данных Oracle и использует наборы данных, таблицы данных и адаптеры таблиц. Он использует устаревший System.Data.OracleClient, и мы планируем заменить эту dll библиотекой от DevArt.
Я использовал мастер миграции Oracle для миграции с System.Data.OracleClient на Devart.Data.Oracle. После миграции все запросы продолжают нормально работать, кроме одного типа: запросы MERGE. Они по-прежнему отлично объединяют записи (ожидаемые записи вставляются/обновляются). Однако раньше возвращалось количество объединенных записей, но теперь вместо этого всегда возвращается «-1».
Есть идеи, в чем может быть проблема? Желательно без ручного обновления всех мерж-запросов (их много), но если обновление всех запросов — единственный способ решить эту проблему, то это приемлемо.
Код, который обрабатывает подключение к базе данных, генерируется файлом DataSet:
Devart.Data.Oracle.OracleCommand command = "MERGE INTO [...]";
System.Data.ConnectionState previousConnectionState = command.Connection.State;
if ((command.Connection.State & System.Data.ConnectionState.Open) != System.Data.ConnectionState.Open)
{
command.Connection.Open();
int returnValue;
try
{
returnValue = command.ExecuteNonQuery();
}
finally
{
if (previousConnectionState != System.Data.ConnectionState.Closed)
{
command.Connection.Close();
}
}
}
return returnValue;