Bonjour,

L'erreur s'est produite sur une plateforme Windows 2003 et Oracle 10g.

Ma question est : à qui appartient un job créé dans DBMS_JOB ? SYSTEM ou l'utilisateur qui a passé la commande Submit ?

Présentation de l'erreur (extrait de l'alert.log) :
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
50
51
52
53
54
55
56
57
Completed: alter database open
Mon Oct 04 01:06:04 2010
Thread 1 advanced to log sequence 5696
  Current log# 4 seq# 5696 mem# 0: E:\xxLOG4.DBF
Mon Oct 04 04:00:02 2010
Errors in file d:\oracle\admin\xx\bdump\xx_j002_15928.trc:
ORA-12012: error on auto execute of job 2
ORA-02289: sequence does not exist
ORA-06512: at "SYS.DBMS_SYS_SQL", line 909
ORA-06512: at "SYS.DBMS_SQL", line 39
ORA-06512: at "ADMIN.ADMIN_PK", line 532
ORA-06512: at line 1
 
Mon Oct 04 04:00:03 2010
Errors in file d:\oracle\admin\xx\bdump\xx_j003_16932.trc:
ORA-12012: error on auto execute of job 22
ORA-02289: sequence does not exist
ORA-06512: at "SYS.DBMS_SYS_SQL", line 909
ORA-06512: at "SYS.DBMS_SQL", line 39
ORA-06512: at "ADMIN.ADMIN_PK", line 532
ORA-06512: at line 1
 
Mon Oct 04 04:00:04 2010
Errors in file d:\oracle\admin\xx\bdump\xx_j001_12460.trc:
ORA-12012: error on auto execute of job 21
ORA-02289: sequence does not exist
ORA-06512: at "SYS.DBMS_SYS_SQL", line 909
ORA-06512: at "SYS.DBMS_SQL", line 39
ORA-06512: at "ADMIN.ADMIN_PK", line 532
ORA-06512: at line 1
 
Mon Oct 04 04:02:05 2010
Errors in file d:\oracle\admin\xx\bdump\xx_j002_10904.trc:
ORA-12012: error on auto execute of job 2
ORA-02289: sequence does not exist
ORA-06512: at "SYS.DBMS_SYS_SQL", line 909
ORA-06512: at "SYS.DBMS_SQL", line 39
ORA-06512: at "ADMIN.ADMIN_PK", line 532
ORA-06512: at line 1
 
Mon Oct 04 04:02:05 2010
Errors in file d:\oracle\admin\xx\bdump\xx_j000_14920.trc:
ORA-12012: error on auto execute of job 21
ORA-02289: sequence does not exist
ORA-06512: at "SYS.DBMS_SYS_SQL", line 909
ORA-06512: at "SYS.DBMS_SQL", line 39
ORA-06512: at "ADMIN.ADMIN_PK", line 532
ORA-06512: at line 1
 
Mon Oct 04 04:06:05 2010
Errors in file d:\oracle\admin\xx\bdump\xx_j001_17884.trc:
ORA-12012: error on auto execute of job 21
ORA-00955: name is already used by an existing object
ORA-06512: at "SYS.DBMS_SYS_SQL", line 909
ORA-06512: at "SYS.DBMS_SQL", line 39
ORA-06512: at "ADMIN.ADMIN_PK", line 539
ORA-06512: at line 1
Et voici le code associé de ADMIN.ADMIN_PK:
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
   PROCEDURE raz_sequence_entrep IS                                                                                                                                                                     
		curseur NUMBER;                                                                                                                                                                                       
		cstatus NUMBER;                                                                                                                                                                                       
		nbseq NUMBER := 0;                                                                                                                                                                                    
		reqsql VARCHAR2(200);                                                                                                                                                                                 
   BEGIN                                                                                                                                                                                                
   	SELECT COUNT(*) INTO nbseq                                                                                                                                                                          
   	FROM USER_SEQUENCES                                                                                                                                                                                 
   	WHERE SEQUENCE_NAME = 'TOTO_TATA';                                                                                                                                                
   	IF nbseq = 1 THEN                                                                                                                                                                                   
	   	-- Suppression de la sequence                                                                                                                                                                      
			curseur := DBMS_SQL.OPEN_CURSOR;                                                                                                                                                                     
532			DBMS_SQL.PARSE(curseur,'DROP SEQUENCE TOTO_TATA',DBMS_SQL.NATIVE);                                                                                                                 
			cstatus := DBMS_SQL.EXECUTE(curseur);                                                                                                                                                                
			DBMS_SQL.CLOSE_CURSOR(curseur);                                                                                                                                                                      
		END IF;                                                                                                                                                                                               
		-- Creation de la sequence                                                                                                                                                                            
   	reqsql := 'CREATE SEQUENCE TOTO_TATA INCREMENT BY 1 START WITH 0 MINVALUE 0 MAXVALUE 99999 NOCYCLE NOCACHE NOORDER';                                                              
		curseur := DBMS_SQL.OPEN_CURSOR;                                                                                                                                                                      
539		DBMS_SQL.PARSE(curseur,reqsql,DBMS_SQL.NATIVE);                                                                                                                                                       
		cstatus := DBMS_SQL.EXECUTE(curseur);                                                                                                                                                                 
		DBMS_SQL.CLOSE_CURSOR(curseur);                                                                                                                                                                       
   END raz_sequence_entrep;
Le job qui lance cette procédure est lancé à 4h00 tous les jours.
Mais les messages sont pour moi paradoxaux
1. Il a trouvé la séquence pour pouvoir mettre le nbseq à 1 car il tente le drop.
2. Or il tente en vain de droper la séquence 5 fois car la séquence n'existe pas
3. Et quand ensuite il tente de la créer, elle existe déjà....

Est ce que le problème pourrait venir du user_sequences et non d'un all_sequences ? d'un problème d'utilisateur ?

Merci d'avance pour l'aide apportée