2017-03-28 2 views
0

Ich verwende Oracle 11g auf Solaris-Plattform. Ich habe einen Trigger erstellt, der für jedes Insert/Update/Delete in der Tabelle ORDERS einen Eintrag in die Testtabelle einfügt. Wie kann ich den gleichen Trigger für 100 Tabellen verwenden? Muss ich 100 Trigger erstellen, d. H. Einen Trigger für jede Tabelle, für die ich DML-Operationen berechnen möchte?Wenden Sie einen Trigger auf viele Tabellen in Oracle

+1

[Ist dies für Auditing?] (Http://StackOverflow.com/q/8922032/266304) Sie können den gleichen Auslöser für DML nicht für mehrere Tabellen verwenden, aber Sie können den Code generieren, um alle Auslöser zu erstellen . Aber zuerst überprüfen Sie das Rad nicht neu erfinden ... –

+0

Es hängt von Ihren Anforderungen ab. In den meisten Fällen wird der einfachste und schnellste Weg 100 Trigger erstellt. Aber es gibt zwei andere Möglichkeiten. Oracle Audit und LogMiner. Schwierigkeitsgrad für Trigger ist 1, für Audit 10, für Logminer 1000 :) –

Antwort

1

Ein Trigger kann nur zu einer Tabelle gehören. Sie brauchen also 100 Trigger in Ihrer Situation. Aus Ihrer Beschreibung geht hervor, dass sie alle die gleiche Form annehmen, sodass Sie die CREATE TRIGGER-Anweisungen mithilfe des Datenwörterbuchs generieren können.

Wenn die Verarbeitung komplex ist, sollten Sie die Logik in eine gespeicherte Prozedur einfügen und diese von den (generierten) Triggern aufrufen.