Bei Anwendungen auf Unternehmensebene können wir uns nicht einfach darauf verlassen, dass Benutzer manuelle Vorgänge ausführen, um die erforderliche Funktionalität zu erreichen. Daher sind geplante Aufgaben unerlässlich, die besonders für die Hintergrundverarbeitung und das Laden von Daten nützlich sind. Die Oracle-Datenbank bietet gespeicherte Prozeduren und geplante Aufgaben, um die Arbeit von Entwicklern und Administratoren zu vereinfachen. In diesem Artikel konzentrieren wir uns auf die Methode, mit der von Oracle geplanten Aufgaben regelmäßig gespeicherte Prozeduren auszuführen.
Geplante Oracle-Aufgaben
Geplante Aufgaben in der Oracle-Datenbank können mit dem DBMS_SCHEDULER-Paket erstellt werden. Mit diesem Paket können wir Jobs mit komplexen Planungsanforderungen erstellen. Es kann verschiedene Frequenzen unterstützen, z. B. stündlich, täglich, wöchentlich, monatlich, jährlich usw. Geplante Aufgaben können auch an einem bestimmten Datum und einer bestimmten Uhrzeit oder sogar in verschiedenen Zeitzonen ausgeführt werden. Die folgenden Objekttypen können mit dem DBMS_SCHEDULER-Paket erstellt werden.
In diesem Artikel konzentrieren wir uns darauf, wie Sie mit DBMS_SCHEDULER einen Job erstellen und ihn an die gespeicherte Prozedur binden, die wir ausführen möchten.
Erstellen Sie eine gespeicherte Prozedur
Wir müssen zunächst eine gespeicherte Prozedur erstellen, um den Aufgabenvorgang auszuführen, den wir abschließen möchten. Unten sehen Sie ein einfaches Beispiel einer gespeicherten Prozedur, die die aktuelle Uhrzeit in eine Tabelle einfügt.
CREATE OR REPLACE PROCEDURE INSERT_TIME AS BEGIN INSERT INTO TIME_LOG (LOG_TIME) VALUES (SYSDATE); COMMIT; END INSERT_TIME;
Job erstellen
Mit der gespeicherten Prozedur müssen wir als Nächstes einen Job erstellen, um dessen Ausführung zu planen. Der Job, den wir erstellen werden, fügt jeden Morgen um 6 Uhr die aktuelle Uhrzeit ein. Nachfolgend finden Sie ein Beispiel für die Verwendung der Funktion DBMS_SCHEDULER.CREATE_JOB zum Erstellen dieses Jobs.
BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'INSERT_TIME_JOB', job_type => 'STORED_PROCEDURE', job_action => 'INSERT_TIME', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=DAILY; BYHOUR=6;', enabled => TRUE, comments => 'Insert current time every day at 6 AM'); END;
Wenn wir die Funktion CREATE_JOB zum Erstellen eines Jobs verwenden, müssen wir die folgenden Parameterbeschreibungen befolgen:
Job an gespeicherte Prozedur binden
Im obigen Beispiel haben wir einen Job erstellt und die gespeicherte Prozedur für seine Ausführung angegeben. Jetzt müssen wir diesen Job an unsere gespeicherte Prozedur binden, damit er den Vorgang zu einem bestimmten Zeitpunkt ausführt. Wir können die Funktion DBMS_SCHEDULER.SET_ATTRIBUTE verwenden, um diese Aufgabe zu erfüllen.
BEGIN DBMS_SCHEDULER.SET_ATTRIBUTE ( name => 'INSERT_TIME_JOB', attribute => 'program_action', value => 'INSERT_TIME;'); END;
In diesem Beispiel verwenden wir die Funktion SET_ATTRIBUTE, um das Attribut „program_action“ des Jobs „INSERT_TIME_JOB“ auf „INSERT_TIME“ zu setzen. Dadurch wird DBMS_SCHEDULER angewiesen, die gespeicherte Prozedur INSERT_TIME zu einem bestimmten Zeitpunkt aufzurufen.
Wir haben gelernt, wie man das DBMS_SCHEDULER-Paket verwendet, um geplante Jobs zu erstellen und Aufgaben in gespeicherten Prozeduren zu binden. Jetzt können wir auf die Ausführung der geplanten Aufgabe warten und die Datensätze in der Tabelle TIME_LOG anzeigen.
Fazit
Die Verwendung der Funktion für geplante Aufgaben der Oracle-Datenbank kann uns dabei helfen, Hintergrundverarbeitungsaufgaben einfach auszuführen. Das DBMS_SCHEDULER-Paket bietet viele Optionen, um unsere spezifischen Anwendungsanforderungen zu erfüllen, wie z. B. wiederholte Ausführung, parallele Ausführung, Wiederherstellung nach Fehlern usw. Darüber hinaus besteht die Möglichkeit, Aufträge über verschiedene Zeitzonen, Daten, Wochen, Monate usw. hinweg auszuführen, was geplante Aufgaben sehr flexibel macht. In diesem Artikel konzentrieren wir uns darauf, wie Sie die geplanten Aufgaben von Oracle nutzen können, um gespeicherte Prozeduren regelmäßig auszuführen. Wir hoffen, dass dieser Artikel Ihnen nützliche Hinweise geben und Ihnen helfen kann, die Verwendungs- und Betriebsprinzipien geplanter Aufgaben auf Basis der Oracle-Datenbank besser zu verstehen.
Das obige ist der detaillierte Inhalt vonSo führen Sie gespeicherte Prozeduren in Oracle regelmäßig aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!