sql >> Databáze >  >> RDS >> Oracle

Oracle 11g:Existuje v PL/SQL nějaký způsob, jak získat informace o vložených a aktualizovaných řádcích po příkazu MERGE DML?

Neexistuje žádný vestavěný způsob, jak získat samostatné počty vložení a aktualizací, ne. SQL%ROWCOUNT by vám řekl počet sloučených řádků, jak už pravděpodobně víte, ale neexistuje žádný ekvivalent pro získání samostatných hodnot pro vložení a aktualizace.

Tento článek od Adriana Billingtona ukazuje způsob, jak získat informace zahrnutím volání funkce do sloučení, což může přidat trochu režie.

Existuje podobný a možná jednodušší trik od MichaelS na fórech Oracle , za což si samozřejmě nemůžu připsat vůbec žádnou zásluhu. Jsem v pokušení to zde reprodukovat, ale nejsem si jistý, jestli je to povoleno, ale v podstatě to používá sys_context udržovat počet, v podstatě stejným způsobem jako Adrianovo řešení s proměnnou balíčku. Použil bych ten, protože je čistší a myslím, že se snáze sleduje a udržuje.

Stále nebezpečně blízko odpovědi pouze na odkaz, ale také nechci plagiovat práci ostatních...



  1. Funkce array_append nefunguje

  2. Jak rozdělit řetězec názvu v mysql?

  3. Ověření e-mailu TSQL (bez regulárního výrazu)

  4. Jak agregovat odlišné hodnoty z více seznamů pomocí Oracle JSON_OBJECT &JSON_ARRAYAGG