Bonjour,

mon problème :

j'ai une procédure qui me crée un job et le scheduler qui va bien :

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
create or replace procedure period authid current_user is
pragma AUTONOMOUS_TRANSACTION;
begin
 
  dbms_scheduler.create_program
  (
    program_name => 'program_imp_alerte',
    program_type => 'EXECUTABLE',
    program_action => '/home/ora11g/projet/lancement.sh',
    enabled => TRUE,
    comments => 'Scheduler des imports'
  );
 
 
  dbms_scheduler.enable (name => 'program_imp_alerte');
 
 
  dbms_scheduler.create_schedule
  (
    schedule_name => 'scheduler',
    start_date => SYSTIMESTAMP, repeat_interval => 'freq=minutely; interval=' || get_option('intervale'),
    end_date => NULL,
    comments => 'Job toutes les x minutes '
  );
 
 
  dbms_scheduler.create_job
  (
    job_name => 'job_import_alerte',
    program_name => 'program_imp_alerte',
    schedule_name => 'scheduler',
    enabled => TRUE,
    comments => 'Creer le job'
  );
 
 
end period;
/

Si je lance cette procédure dans un script du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
begin
  period();
end;
/
-> aucun problème.

J'ai également un trigger qui m'appelle cette procédure sur un update d'une table :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
create or replace trigger trg_chg_option
after update on alerte_options
for each row
begin
 
  if :old.nom_option = 'intervale' then
 
    period();
 
  end if;
 
end;
/
Le problème, lors de l'update j'ai :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Erreur commençant à la ligne 1 de la commande :
update alerte_options set valeur_option = '2' where nom_option = 'intervale'
Rapport d'erreur :
Erreur SQL : ORA-27486: privilèges insuffisants
ORA-06512: à "SYS.DBMS_ISCHED", ligne 5
ORA-06512: à "SYS.DBMS_SCHEDULER", ligne 36
ORA-06512: à "XAVINOU_DATA.PERIOD", ligne 5
ORA-06512: à "XAVINOU_DATA.TRG_CHG_OPTION", ligne 7
ORA-04088: erreur lors d'exécution du déclencheur 'XAVINOU_DATA.TRG_CHG_OPTION'
27486. 00000 -  "insufficient privileges"
*Cause:    An attempt was made to perform a scheduler operation without the
           required privileges.
*Action:   Ask a sufficiently privileged user to perform the requested
           operation, or grant the required privileges to the proper user(s).

Là, je n'ai aucune idée pourquoi il me dit que je n'ai pas le droit de faire.


Si quelqu'un à une idée, je suis preneur...


Merci