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

SQL Oracle Discussion :

Oracle et les jobs


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Par défaut Oracle et les jobs
    Bonjour,

    Voilà j'ai un job qui se contente de lancer une procédure stockée toutes les heures.
    Seulement je ne sais pas si ce job est bien appelé ni le résultat de ma procédure stockée

    Y a t'il un moyen de trouver des réponses dans la base oracle (10g) ?
    Des logs sont ils stockés ? Ou ?

    D'avance merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Pour avoir des informations sur l'exécution du job lui-même, tu as les vues systèmes dba_jobs, all_jobs et user_jobs.
    Pour le résultat de ta procédure stockée, c'est à toi de le stocker quelque part.
    Dans les vues ci-dessus, tu sais juste si ça s'est correctement déroulé.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Par défaut
    Je n'ai aucune de ces vues

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    connecte toi SYSTEM...

  5. #5
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    connecte toi SYSTEM et fais une recherche dans les tutoriels

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Vous devez forcément avoir USER_JOBS pour un job DBMS_JOB. Si un job DBMS_JOB échoue, il y a des messages dans l'alert.log de l'instance. Un job DBMS_SCHEDULER en erreur n'émet pas de message dans l'alert.log mais que le job réussisse ou échoue, il y a une entrée dans USER_SCHEDULER_JOB_LOG et la colonne STATUS a la valeur attendue.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Par défaut
    Je n'ai pas les droits d'administrateur, mais je considère que le job fonctionne.
    Problème: je n'arrive pas à tester ma procédure stockée
    Voilà le début de celle ci

    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
    CREATE OR REPLACE PROCEDURE MP2.CALCUL_COMPTEURS_TRAFIC_REINIT IS
    	CURSOR compteurs IS
    		SELECT EQNUM, ENSEMBLE, TYPE_DEFAUT, REFERENCE, DATE_REINIT, TYPE_PERIPH, DATE_MAJ
    		FROM SAPRR_COMPTEURS
    		WHERE DATE_REINIT IS NOT NULL AND TRAFIC_REINIT IS NULL
    		  AND (
    			   ENSEMBLE IN (1, 2, 3)
    			   OR
    			   (ENSEMBLE = 4 AND TYPE_PERIPH IN (1, 7, 8))
    			  )
    	;
    	traficReinit SAPRR_COMPTEURS.TRAFIC_REINIT%TYPE;
    	lastReinit SAPRR_COMPTEURS.DATE_REINIT%TYPE;
    	site EQUIP.SITEID%TYPE;
    	district EQUIP.LOCATION%TYPE;
    	gare EQUIP.SUBLOCATION1%TYPE;
    	voie EQUIP.SUBLOCATION2%TYPE;
    Avec l'outil Quest Script Runner: en pas à pas je ne fais que créé la procédure.
    Rien de plus...

    Je ne suis pas un spécialiste oracle, loin de là, normalement ce n'est pas à moi de faire cette partie,
    mais mon temps libre me permet de m'y interesser, puisque cette procédure ne semble pas fonctionner.

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    et comment pourrait-on t'aider au juste ?

  9. #9
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Par défaut
    Citation Envoyé par 0xYg3n3 Voir le message
    Avec l'outil Quest Script Runner: en pas à pas je ne fais que créé la procédure.
    Rien de plus...
    Oui c'est normal... tu viens d'exécuter un ordre sql et ce que tu lui as demandé de faire est écrit tout au début
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE OR REPLACE PROCEDURE MP2.CALCUL_COMPTEURS_TRAFIC_REINIT ...
    Si tu veux l'exécuter, il te faut faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CALL MP2.CALCUL_COMPTEURS_TRAFIC_REINIT
    avec les paramètres qui vont bien (bon là à priori il n'y en a pas ).

    Sinon, si tu as des doutes sur ce qu'elle fait,... il y a toujours moyen d'insérer de la LOG dans une table... mais cela nécessite du code (en général une sous procédure en AUTONOMOUS TRANSACTION).

    Mais il reste une question...
    Que veux tu savoir exactement?
    - Tu penses qu'elle n'est pas lancée?
    - Tu penses qu'elle ne fait pas ce qu'elle devrait?
    - Tu veux pouvoir la lancer toi même?
    - Tu veux vérifier ce qu'elle fait?

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Par défaut
    Ni sous Toad, ni sous ScriptRunner je n'arrive à créer le curseur "compteurs".
    J'ai à chaque fois l'erreur ORA-00900: instruction SQL non valide
    A priori la syntaxe est bonne

  11. #11
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    utilise SQL*Plus

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Par défaut
    Citation Envoyé par orafrance Voir le message
    utilise SQL*Plus
    C'est bien ma veine, dans la boîte ou je travaille on à une licence de TOAD, et je me retrouve à utiliser le plus basique des interpreteurs sql

  13. #13
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Par défaut
    Alors dans ce cas, je dirais que ce qu'il faut que tu fasses c'est de jouer chacun des ordres SQL qui sont joués à l'intérieur (en respectant la logique du code PL/SQL quand même, c'est à dire les boucles, les IF, ...)
    Comme celà tu verras le résultat des SELECT, le nombre de lignes insérées,...

    Si tu as TOAD, tu as un mode debuggage de PL/SQL si tu veux.
    Il faut que tu loades ta procédure dans "Procedure Editor".
    - tapes le nom de la proc
    - mets ton curseur dessus
    - fais F4
    - clique sur l'icone en haut à gauche qui correspond à procedure editor (un cylindre avec un eclair)
    - après trouve l'icone "Trace into" qui te permettra de lancer la proc en mode debuggage

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Par défaut
    Bon aller je n'y comprends rien...
    Je ne vois pas comment tester cette procédure stockée sous SQL*PLUS.
    Cette procédure parcour chaque ligne du cursor

  15. #15
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Par défaut
    En SQL, tu ne peux pas créer de curseur proprement dit...
    Par contre tu peux jouer le SELECT qui correspond... et sauvegarder le résultat dans une table par exemple.

  16. #16
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par 0xYg3n3 Voir le message
    C'est bien ma veine, dans la boîte ou je travaille on à une licence de TOAD, et je me retrouve à utiliser le plus basique des interpreteurs sql
    pour lancer des scripts y'a pas mieux que SQL*Plus

  17. #17
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Par défaut
    Citation Envoyé par 0xYg3n3 Voir le message
    Bon aller je n'y comprends rien...
    Je ne vois pas comment tester cette procédure stockée sous SQL*PLUS.
    Cette procédure parcour chaque ligne du cursor
    - sauvegarde le résultat du SELECT du curseur dans une table
    - prend la première ligne (ses valeurs)
    - joue tout le code du curseur pour la première ligne
    - si ça n'a pas suffi, prend les autres lignes et joue le code.

    note : si ta procedure appelle des sous procedures ça peut être long

  18. #18
    Membre expérimenté
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Par défaut
    Citation Envoyé par orafrance Voir le message
    pour lancer des scripts y'a pas mieux que SQL*Plus
    Oui pour les lancer... un peu moins pour voir ce qu'ils font

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Par défaut
    Merci, j'ai identifié le problème.
    Ca provient d'un script d'alimentation de l'une des tables utilisées par la procédure stockée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 21/09/2009, 09h03
  2. procédure pl/sql qui gére les jobs oracle
    Par younes32 dans le forum PL/SQL
    Réponses: 6
    Dernier message: 17/06/2009, 10h52
  3. Question sur les jobs oracle 10G R2
    Par Z3phur dans le forum Administration
    Réponses: 2
    Dernier message: 13/03/2008, 15h12
  4. [PLSQL oracle 9i] erreur sur les jobs
    Par Herveg dans le forum Oracle
    Réponses: 9
    Dernier message: 11/12/2006, 14h01
  5. Doc sur les jobs oracle
    Par boussaad dans le forum Oracle
    Réponses: 1
    Dernier message: 14/08/2006, 09h42

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