Bonjour tous,
comme faire ? Je connais les trigger, mais ça ne semble pas compatible, car cet événement n'est ni avant ni après une commande sql. Je suis dans le flou total.
Cordialement.
Enkvist.
Bonjour tous,
comme faire ? Je connais les trigger, mais ça ne semble pas compatible, car cet événement n'est ni avant ni après une commande sql. Je suis dans le flou total.
Cordialement.
Enkvist.
Je ne maîtrise pas le sujet mais : la fonction submit du package dbms_job permet de gérer un petit scheduler interne à Oracle.
Il y a des spécialistes comme Jaouad qui pourront certainement venir t'éclairer.
Version d'Oracle ?
Un problème sans solution est un problème mal posé
Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
Il vaut mieux utiliser DBMS_Scheduler.
D'abord créer un Schedule qui indique la date de début, la périodicité, la date de fin :
http://download.oracle.com/docs/cd/B...d.htm#i1010076
Ensuite créer un job qui utilise ce Schedule (2e méthode) :
http://download.oracle.com/docs/cd/B...d.htm#i1000363
HTH
Bonjour,
j'utilise la 10g r2. Le système permet donc l'utilisation de DBMS_SCHEDULER, chose que je ne connais pas du tout. Je vais donc m'y plonger, merci à vous pour la piste.
Cordialement.
Enkvist.
Il y a aussi la possibilité de lancer un script SQL chaque lundi par le biais de la CRONTAB ou d'une tâche cédulée.
C'est une question de goût, soit par l'os, soit par la bd...
Salut,
alors j'ai fait un script, que je vous montre tantôt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 begin dbms_scheduler.create_schedule (schedule_name => 'Every_Mon_1AM', start_date => SYSTIMESTAMP, repeat_interval => 'FREQ=WEEKLY; BYDAY=MON; BYHOUR=1;', comments => 'Run at 1am on every monday' ); end; begin dbms_scheduler.create_program (program_name => 'INSERT_INTO_CRAH', program_type => 'STORED_PROCEDURE', program_action => 'inserer_ligne_vierge_dans_CRAH_VALIDATION', enabled => true, comments => 'Lance la procédure dinsertion dun nouveau crah' ); end; create or replace procedure inserer_ligne_vierge_dans_CRAH_VALIDATION ( -- curseur de tous les id_utilisateurS Cursor C_ID_UTILISATEUR is Select ID_UTILISATEUR from UTILISATEURS ; -- variable contenant un id_utilisateur Userid UTILISATEURS.ID_UTILISATEUR%Type; ) Begin Open C_ID_UTILISATEUR ; Loop Fetch C_ID_UTILISATEUR into Userid ; Exit when C_ID_UTILISATEUR not found; -- insertion d'un nouveau crah avec la date du jour et l'utilisateur actuel du curseur Insert into CRAH (ID_CRAH, DATE_CRAH, ID_UTILISATEUR) values (,SYSDATE, Userid); -- récup de l'ID_CRAH dernièrement inséré dans la table CRAH (donc le plus grand) Select max(ID_CRAH) into Documentid from CRAH; -- insertion d'une ligne dans la table de validation de l'état initial du CRAH Insert into VALIDATION (VALID_INTERV, VALID_MANAG, VALID_COMPTA, VALID_FINALE, DOC_ID) values (0, 0, 0, 0, Documentid); End Loop; Close C_ID_UTILISATEUR end;
Mais j'ai encore un soucis ! A part le fait que je n'ai pas testé, je me demandais, où sont stockés ces schedulers et jobs ? Quelle est la logique de fonctionnement ? Si quelqu'un pourrait me répondre, j'en serais enchanté. Cela serait très précieux pour moi.
Cordialement.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager