2017-10-02 3 views
0

Angenommen, ich erstellte eine Tabelle test_table in Entwicklung, nur um einen Trigger zu testen, dieser Trigger würde dann in vielen anderen Tabellen (zukünftige und bestehende) wiederverwendet werden.Wie kann ich eine Trigger "Vorlage" in Orakel speichern?

Also Code ich den Trigger, testen Sie es, alles gut! Aber im Moment, wenn ich es replizieren will, muss ich es von test_table Auslöser kopieren und es bearbeiten.

Wenn also jemand versehentlich die Tabelle löscht, ist der Auslöser weg und ich habe ihn nirgendwo anders gespeichert. Oder wenn ich nur zufällige Testtabellen in unserer Datenbank löschen möchte, kann ich das nicht.

Was ist eine empfohlene Möglichkeit zum Speichern eines Auslösers als "Vorlage" in Oracle? So kann ich es in anderen Tabellen wiederverwenden und nicht von einer zufälligen Testtabelle oder einer Tabelle abhängig sein.

+0

Versionskontrolle wie Git/SVN – lad2025

+0

Stellen Sie sicher, dass jemand, der versehentlich Ihre Tabelle (oder die gesamte Datenbank) fallen lässt, Ihre Arbeit nicht verlieren kann. Dafür ist teilweise die Versionskontrolle zuständig. –

Antwort

1

Es gibt viele Möglichkeiten, wie Sie eine Kopie Ihres TRIGGER SQLText behalten können.

Hier sind ein paar Beispiele.

in der Versionskontrolle: Sie eine der vielen Versionskontrolle Tools verwenden, um eine versioniert Geschichte für jeden Code, den Sie mögen, einschließlich SQL, PL/SQL zu halten, etc. Sie Zeit zurückspulen können, schauen Sie Unterschiede im Laufe der Zeit , Änderungen an der Vorlage verfolgen, sogar gleichzeitige Entwicklung zulassen.

Als Funktion: Wenn Sie die Vorlage leben in der Datenbank wollen, können Sie eine erstellen FUNCTION (oder PACKAGE), die das Ziel USER und TABLE, und es ersetzt die USER und TABLE Werte als Parameter nimmt in seine Vorlage zum Generieren der SQLTEXT erforderlich zum Erstellen oder Ersetzen der Vorlage TRIGGER auf dem Ziel TABLE. Sie können es nach Bedarf EDITIONABLE machen.

In einer Tabelle: Sie können jederzeit erstellen Sie einfach eine TABLE die Vorlage TRIGGER SQLText als CLOB oder VARCHAR2 hält. Es müsste irgendwo sein, wo es nicht "zufällig" gelöscht werden soll. Sie können AUDIT Änderungen an den TABLE Daten vornehmen, um zu sehen, wie sich die Vorlage im Laufe der Zeit ändert. Oracle hat eine Menge Auditing-Optionen.

In den Protokollen: Sie können Sie sich anmelden (alle) DDL aus. Wenn Sie ENABLE_DDL_LOGGING haben, wird das Log-XML eine Kopie jeder DDL-Anweisung haben, kategorisiert, zusammen mit wann und woher es kam.

+0

Ich denke, die Funktion ist der beste Weg, um es in Oracle zu speichern, ich wünschte wirklich, ich könnte einen anonymen Auslöser speichern – Mojimi

Verwandte Themen