sql >> Database >  >> RDS >> Oracle

Oracle 11g:Is er in PL/SQL een manier om informatie te krijgen over ingevoegde en bijgewerkte rijen na de MERGE DML-instructie?

Er is geen ingebouwde manier om afzonderlijke invoeg- en updatetellingen te krijgen, nee. SQL%ROWCOUNT zou u het aantal samengevoegde rijen vertellen, zoals u waarschijnlijk al weet, maar er is geen equivalent om afzonderlijke waarden voor de invoegingen en updates te krijgen.

Dit artikel door Adrian Billington toont een manier om de informatie te krijgen door een functieaanroep in de samenvoeging op te nemen, wat een beetje overhead zou kunnen toevoegen.

Er is een vergelijkbare en misschien eenvoudigere truc van MichaelS op de Oracle-forums , waar ik natuurlijk ook geen eer voor kan opstrijken. Ik kom in de verleiding om het hier te reproduceren, maar ik weet niet zeker of dat is toegestaan, maar in wezen gebruikt het sys_context om een ​​telling bij te houden, op vrijwel dezelfde manier als Adrian's oplossing deed met een pakketvariabele. Ik zou die gebruiken, omdat het schoner is en ik denk dat het gemakkelijker te volgen en te onderhouden is.

Nog steeds gevaarlijk dicht bij een link-only antwoord, maar ik wil ook niet het werk van anderen plagiaat...



  1. Veldgroottes voor grote tekens in SAS

  2. flask_mysqldb Verwijder FROM variabele tabel

  3. org.hibernate.internal.util.config.ConfigurationException:kon cfg.xml-bron [/HibernateTest/src/hibernate.cfg.xml] niet vinden

  4. CodeIgniter Afbeeldingsbestand kan niet worden geüpload