sql >> Database >  >> RDS >> Oracle

Plaats gebeurtenis in het Windows-gebeurtenislogboek met Oracle

De reden waarom het werkt onder SYS is dat het een speciaal bevoorrecht account is. U moet een nieuwe referentie maken en deze toewijzen aan de taak

De oplossing zou zijn om een ​​referentie te maken met DBMS_SCHEDULER.CREATE_CREDENTIAL samen met een OS-account dat voldoende privileges heeft en wijs deze nieuwe referentie toe aan uw taak.

Om eerlijk te zijn weet ik het probleem nog niet.

Bewerken - oplossing gebaseerd op de subtransactiefaciliteit van Oracle

Na OP-update en reactie op opmerkingen:

Op basis van de workflow denk ik dat het beter is om de interne melding van Oracle te gebruiken om de responsieve . te doen controleren. Ik denk dat het proberen jezelf te hacken in het Windows-gebeurtenislogboek via een externe applicatie een nieuwe onnodige laag van complexiteit met zich meebrengt.

Ik zou een tabel binnen DB maken waar ik alle gebeurtenissen zou opslaan en bovenop die tabel zou ik een taak maken met meldingen (sms, e-mail, enz.) Die zou worden uitgevoerd als er een wijziging in de logtabel optreedt.

Om triggers te gebruiken wanneer er een fout optreedt, moet u PRAGMA autonome_transactie van uw hoofdbereik (hiermee kunt u een subtransactie uitvoeren). Hiermee kun je elke DML . vastleggen misschien wel, maar doe de rest terug.



  1. MySQL Cross Table-beperking

  2. java.sql.SQLException:Geen bewerkingen toegestaan ​​nadat de verbinding is gesloten

  3. Opstartomgeving configureren in SQL Server Management Studio (SSMS) - SQL Server / TSQL-zelfstudie, deel 7

  4. Hoe de databaseverbinding op een python-webserver te behouden?