Maison >base de données >Oracle >procédure stockée planifiée par Oracle
Oracle est une base de données relationnelle très populaire. En entreprise, nous devons souvent exécuter régulièrement certaines procédures stockées pour effectuer certaines opérations automatisées et réduire les coûts d'exploitation. Cet article explique comment utiliser Oracle pour exécuter régulièrement des procédures stockées.
1. Le concept de base de l'exécution planifiée des procédures stockées dans Oracle
L'exécution planifiée des procédures stockées dans Oracle signifie que le système exécute automatiquement certaines procédures stockées pré-écrites dans un certain intervalle de temps . Cette méthode est souvent utilisée pour l’archivage, la sauvegarde, le nettoyage et d’autres tâches régulières de données.
2. Comment implémenter l'exécution planifiée des procédures stockées par Oracle
L'exécution planifiée des procédures stockées par Oracle peut être réalisée via le planificateur d'Oracle. Le planificateur permet de démarrer facilement une tâche à un moment ou à un intervalle spécifié et de la terminer lorsque le temps est écoulé.
begin
dbms_scheduler.create_job
(job_name => ;'mon travail',
job_type=>'STORED_PROCEDURE',
job_action=>'mystoredprocedure'); Exécution planifiée
Après la création d'un job, quand doit-il être exécuté ? Le planificateur Oracle peut contrôler le temps d'exécution des tâches des deux manières suivantes :
DBMS_SCHEDULER.CREATE_SCHEDULE (
schedule_name => 'weekends', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=WEEKLY;BYDAY=SAT,SUN;BYHOUR=0;BYMINUTE=0', end_date => NULL, comments => 'Weekend schedule - Saturday and Sunday every week at midnight.');
END;
Pour que mon travail soit exécuté à l'heure suivante, la logique de planification des week-ends doit être appliquée à mon travail :
BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE#🎜🎜 #( name => 'myjob', attribute => 'repeat_interval', value => 'weekends' );
END;
Grâce à cette méthode de planification basée sur le temps, le cycle d'exécution du travail sera très fixe et défini par le développeur en fonction des besoins de l'entreprise.
Une autre façon d'implémenter l'exécution planifiée de procédures stockées est pilotée par les événements. Par exemple, un champ dans une table de données a été transformé à ce moment-là. il est nécessaire de piloter l'exécution des procédures stockées. Dans Oracle, vous pouvez créer une planification planifiée basée sur des événements via le code suivant :
BEGIN
DBMS_SCHEDULER.CREATE_JOB( job_name => 'job_name', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN my_procedure(:my_param); END;', start_date => SYSTIMESTAMP, event_condition => 'tab.col3 = ''Y''', --这里可以选择需要监控的事件类型和字段 queue_spec => 'queue_specification', auto_drop => FALSE, enabled => TRUE );
Exécuter la procédure stockée
Dans l'exemple ci-dessus, la fonction du travail "myjob" est d'exécuter la procédure stockée "mystoredprocedure". Ici, nous pouvons voir que le planificateur lui-même n'exécute pas la procédure stockée, il est uniquement responsable de la gestion de l'exécution du travail.
INSERT INTO employees_audit (employee_id, salary, entry_date) SELECT employee_id, salary, SYSDATE FROM employees WHERE hire_date > SYSDATE - 1;
END mystoredprocedure ;
Cet exemple stocke simplement les nouvelles informations sur les données dans la table employés_audit de la base de données. Les développeurs peuvent écrire leurs propres procédures stockées en fonction de besoins spécifiques.
Les programmes qui exécutent régulièrement des procédures stockées s'exécutent en arrière-plan. Selon la politique de planification temporelle définie par le développeur, le travail sera démarré à l'heure spécifiée, puis la procédure stockée mystoredprocedure sera exécutée.
3. Résumé
L'exécution planifiée par Oracle des procédures stockées est une solution efficace pour traiter les tâches périodiques. Ce processus peut être très facilement implémenté à l'aide du planificateur d'Oracle. Grâce à la méthode d'implémentation présentée dans cet article, les développeurs peuvent configurer de manière flexible la durée d'exécution, la fréquence et les procédures stockées qui doivent être exécutées. Cela peut réduire considérablement le temps de traitement des affaires et améliorer l’efficacité du traitement.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!