C# / ODP.Net: MERGE INTO - Как получить количество затронутых рядов?

Я перевожу проект из провайдера Oracle Mirosofts (System.Data.OracleClient) в провайдер данных Oracle ODP.Net (Oracle.DataAccess.Client), версия 11.2.0.4. Проблема, с которой я столкнулся сейчас, заключается в следующем:

Когда я выполняю инструкцию MERGE INTO с использованием функции OracleCommand.ExecuteNonQuery, она всегда возвращает -1, независимо от того, была она успешной или нет. Поставщик Microsoft всегда возвращает количество затронутых строк. Так что это то, что я ожидаю от ODP.Net. Но он возвращает только количество затронутых строк для операторов INSERT/DELETE/UPDATE...

Так как я могу заставить это работать? Есть идеи?

Ура христианская

1 ответ

Решение

Это ошибка в ODP.NET, к сожалению.

Если вы можете сделать это в анонимном PL/SQL или в хранимой процедуре, вы можете воспользоваться SQL / ROWCOUNT PL/SQL.

Другие вопросы по тегам