Det finns inte ett inbyggt sätt att få separata infognings- och uppdateringsantal, nej. SQL%ROWCOUNT
skulle berätta hur många rader som är sammanslagna, som du säkert redan vet, men det finns ingen motsvarighet för att få separata värden för infogningar och uppdateringar.
Denna artikel av Adrian Billington visar ett sätt att få informationen genom att inkludera ett funktionsanrop i sammanslagningen, vilket kan lägga till lite overhead.
Det finns ett liknande, och kanske enklare, knep från MichaelS på Oracle-forumen
, vilket jag inte heller kan ta åt mig äran för alls förstås. Jag är frestad att återskapa det här men jag är inte säker på om det är tillåtet, men i huvudsak använder det sys_context
att upprätthålla en räkning, ungefär på samma sätt som Adrians lösning gjorde med en paketvariabel. Jag skulle använda den, eftersom den är renare och jag tror att den är lättare att följa och underhålla.
Fortfarande farligt nära ett svar med endast länk men jag vill inte plagiera andras arbete heller...