Maison >base de données >Oracle >Comment exécuter régulièrement des procédures stockées dans Oracle
Dans les applications de niveau entreprise, nous ne pouvons pas simplement compter sur les utilisateurs pour effectuer des opérations manuelles afin d'obtenir les fonctionnalités requises. Par conséquent, les tâches planifiées sont essentielles, particulièrement utiles pour effectuer le traitement en arrière-plan et le chargement des données. La base de données Oracle fournit des procédures stockées et des tâches planifiées pour simplifier le travail des développeurs et des administrateurs. Dans cet article, nous nous concentrerons sur la méthode d'utilisation des tâches planifiées Oracle pour exécuter régulièrement des procédures stockées.
Tâches planifiées Oracle
Les tâches planifiées dans la base de données Oracle peuvent être créées à l'aide du package DBMS_SCHEDULER. Ce package nous permet de créer des emplois avec des exigences de planification complexes. Il peut prendre en charge diverses fréquences telles que horaires, quotidiennes, hebdomadaires, mensuelles, annuelles, etc. Les tâches planifiées peuvent également être exécutées à une date et une heure spécifiques, ou même dans des fuseaux horaires différents. Les types d'objets suivants peuvent être créés à l'aide du package DBMS_SCHEDULER.
Dans cet article, nous nous concentrerons sur la façon d'utiliser DBMS_SCHEDULER pour créer un travail et le lier à la procédure stockée que nous souhaitons exécuter.
Créer une procédure stockée
Nous devons d'abord créer une procédure stockée pour effectuer l'opération de tâche que nous souhaitons effectuer. Vous trouverez ci-dessous un exemple simple de procédure stockée qui insérera l'heure actuelle dans une table.
CREATE OR REPLACE PROCEDURE INSERT_TIME AS BEGIN INSERT INTO TIME_LOG (LOG_TIME) VALUES (SYSDATE); COMMIT; END INSERT_TIME;
Créer un travail
Avec la procédure stockée en main, nous devons ensuite créer un travail pour planifier son exécution. Le travail que nous allons créer insérera l'heure actuelle chaque matin à 6 heures. Vous trouverez ci-dessous un exemple d'utilisation de la fonction DBMS_SCHEDULER.CREATE_JOB pour créer ce travail.
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;
Lorsque nous utilisons la fonction CREATE_JOB pour créer un travail, nous devons suivre les descriptions des paramètres suivants :
Lier le travail à la procédure stockée
Dans l'exemple ci-dessus, nous avons créé un travail et spécifié la procédure stockée pour son exécution. Maintenant, nous devons lier ce travail à notre procédure stockée afin qu'elle exécute l'opération à l'heure spécifiée. Nous pouvons utiliser la fonction DBMS_SCHEDULER.SET_ATTRIBUTE pour accomplir cette tâche.
BEGIN DBMS_SCHEDULER.SET_ATTRIBUTE ( name => 'INSERT_TIME_JOB', attribute => 'program_action', value => 'INSERT_TIME;'); END;
Dans cet exemple, nous utilisons la fonction SET_ATTRIBUTE pour définir l'attribut "program_action" du travail "INSERT_TIME_JOB" sur "INSERT_TIME". Cela indiquera à DBMS_SCHEDULER d'appeler la procédure stockée INSERT_TIME à une heure précise.
Nous avons appris à utiliser le package DBMS_SCHEDULER pour créer des tâches planifiées et lier des tâches dans des procédures stockées. Maintenant, nous pouvons attendre que la tâche planifiée s'exécute et afficher les enregistrements dans la table TIME_LOG.
Conclusion
L'utilisation de la fonction de tâche planifiée de la base de données Oracle peut nous aider à effectuer facilement des tâches de traitement en arrière-plan. Le package DBMS_SCHEDULER offre de nombreuses options pour répondre aux besoins spécifiques de nos applications, telles que l'exécution répétée, l'exécution parallèle, la reprise après échec, etc. De plus, il a la capacité d'exécuter des tâches sur différents fuseaux horaires, dates, semaines, mois, etc., ce qui rend les tâches planifiées très flexibles. Dans cet article, nous nous concentrons sur la façon d'utiliser les tâches planifiées d'Oracle pour exécuter régulièrement des procédures stockées. Nous espérons que cet article pourra vous fournir des conseils utiles et vous aider à mieux comprendre les principes d'utilisation et de fonctionnement des tâches planifiées basées sur la base de données Oracle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!