IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

[10g] DBMS_JOB et SCHEMA


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut [10g] DBMS_JOB et SCHEMA
    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

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    C'est quoi la propriété AUTHID du votre package ADMIN_PK ?

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Par défaut
    Dans la déclaration du Package, il n'y a pas de clause AUTHID. Il est donc DEFINER par défaut non ?

    Dans la vue all_procedures, toutes les procédures issues du package ADMIN_PK sont en DEFINER.

    Par contre, je n'ai trouvé aucune vue ou table donnant les propriétés des packages. J'ai raté quelque chose ?

Discussions similaires

  1. [10g] Duplication / copie de schema
    Par CyBeRoN dans le forum Import/Export
    Réponses: 7
    Dernier message: 25/03/2011, 14h10
  2. 10g/datapump/export schema et trigger log on/off
    Par URIOS dans le forum Import/Export
    Réponses: 7
    Dernier message: 03/04/2009, 18h14
  3. Oracle 10g: grant select sur un schema?
    Par Bonnie38 dans le forum Administration
    Réponses: 12
    Dernier message: 22/05/2008, 15h02
  4. validation d'un XML schema
    Par nicolas_jf dans le forum Valider
    Réponses: 2
    Dernier message: 05/05/2003, 11h25
  5. schema xml + xml qui va avec, comment verifier?
    Par Slash dans le forum Valider
    Réponses: 4
    Dernier message: 02/03/2003, 11h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo