[10g] Erreur 942 dans DBMS_SCHEDULER
Bonjour,
J'ai un job qui tourne tous les matins à 1 h.
Ce job est constitué d'un block anonyme qui fait appel à une procédure stockée.
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
SYS.DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'PLUTON.REFRESH_TASK_DAILY'
,start_date => TO_TIMESTAMP_TZ('2011/12/14 01:00:00.000000 +01:00','yyyy/mm/dd hh24:mi:ss.ff tzr')
,repeat_interval => 'FREQ=DAILY;INTERVAL=1; BYHOUR=1; BYMINUTE=0;BYSECOND=0'
,end_date => NULL
,job_class => 'DEFAULT_JOB_CLASS'
,job_type => 'STORED_PROCEDURE'
,job_action => 'PLUTON.PKGTASK_T.REFRESH_ALL'
,comments => NULL
); |
Cette procédure mets à jour une table (TASK) pour laquelle il existe des triggers qui eux-même font appel à DBMS_AQ (enqueue)
Code:
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 50 51 52 53 54
|
CREATE OR REPLACE TRIGGER TASK_AUIDR
AFTER DELETE OR INSERT OR UPDATE
ON PLUTON.TASK
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
DECLARE
v_task_msg T_TASK_msg;
v_old_task t_task;
v_new_task t_task;
BEGIN
IF DELETING OR UPDATING
THEN
v_old_task :=
t_task (t_task_key (t_mar_key (:old.num_aff,
:old.num_ave,
:old.soc_num_soc,
:old.num_mar),
:old.cod_typ_task),
:old.nb,
:old.mnt,
:old.cod_dev,
:old.dat_task);
END IF;
IF INSERTING OR UPDATING
THEN
v_new_task :=
t_task (t_task_key (t_mar_key (:new.num_aff,
:new.num_ave,
:new.soc_num_soc,
:new.num_mar),
:new.cod_typ_task),
:new.nb,
:new.mnt,
:new.cod_dev,
:new.dat_task);
END IF;
IF DELETING
THEN
-- envoie via un pipe aux ecran Forms( suppression tache)
pkgtaskmsgqueue.enqueue (t_task_msg (v_old_task, 'D'));
ELSIF INSERTING
THEN
pkgtaskmsgqueue.enqueue (t_task_msg (v_new_task, 'I'));
ELSE
IF v_old_task.task_key != v_new_task.task_key
THEN
pkgtaskmsgqueue.enqueue (t_task_msg (v_old_task, 'D'));
pkgtaskmsgqueue.enqueue (t_task_msg (v_new_task, 'I'));
ELSE
pkgtaskmsgqueue.enqueue (t_task_msg (v_new_task, 'U'));
END IF;
END IF;
END; |
Or, depuis trois jour, ces jobs ont un statut "FAILED" dans le LOG avec une erreur
Code:
1 2
|
ORA-00942: Table ou vue inexistante |
Si je fait tourner la procédure "à la main", je n'ai aucune erreur.
Quelqu'un saurait-il me dire comment je peux avoir des infos plus précises sur l'erreur (trace, log ou autre) et quelle table fait défaut (je pense qu'il s'agit d'une table ou d'une vue AQ, mais laquelle ?)
Merci
PS : version d'oracle dans la signature