Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle 11g:В PL/SQL има ли някакъв начин да получите информация за вмъкнати и актуализирани редове след MERGE DML оператор?

Не е вграден начин за отделно вмъкване и актуализиране на броя, не. SQL%ROWCOUNT ще ви каже броя на обединените редове, както вероятно вече знаете, но няма еквивалент за получаване на отделни стойности за вмъкванията и актуализациите.

Тази статия от Адриан Билингтън показва начин за получаване на информация чрез включване на извикване на функция в сливането, което може да добави малко допълнителни разходи.

Има подобен и може би по-опростен трик от MichaelS във форумите на Oracle , за което също не мога да си припиша никаква заслуга, разбира се. Изкушавам се да го възпроизведа тук, но не съм сигурен дали това е позволено, но по същество използва sys_context за поддържане на броя, почти по същия начин, по който решението на Адриан направи с пакетна променлива. Бих използвал този, тъй като е по-чист и мисля, че е по-лесен за следване и поддръжка.

Все още съм опасно близо до отговор само с връзка, но също не искам да плагиатствам работата на другите...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL сравнява записи в таблица

  2. Как да идентифицираме невалидни (повредени) стойности, съхранени в колони DATE на Oracle

  3. Разрешаване на математически функции PL/SQL

  4. INSERT Производителност - Bitmap срещу B-Tree

  5. Как да конфигурирам DbContext да работи с Oracle ODP.Net и EF CodeFirst?