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

PL/SQL Oracle Discussion :

[oracle8i + UNIX] Lancement de Procédure PLSQL par UNIX


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Titouf
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 177
    Par défaut [oracle8i + UNIX] Lancement de Procédure PLSQL par UNIX
    Bonjour,
    j'ai voulu lancer des procédures PLSQL par Shell UNIX.

    Pour le moment, je n'avais pas de soucis jusqu'à ce que je veuille gérer mes erreurs. En effet, même si des exceptions sont levées dans mes PLSQLs, le script fonctionne bien, et me renvoie que la procédure a été exécutée avec succès.

    Le problème est que pour la maintenance d'un tel système, ce n'est pas terrible. Je souhaite aujourd'hui gérer ces ano dans mon shell. j'ai donc tenté de faire des DBMS_OUTPUT, et envoyé les résultats dans un fichier erreur, en espérant tester dans le shell, si celui ci était rempli ou non. Si il est rempli alors il y a des ano... Problème : lorsque les exceptions ne sont levées, il y a quand même une log qui me dit que les ordres PLSQL ont été réalisés avec succès...

    N'y a t il pas une méthode plus pratique?

    J'ai pensé passé un paramètre OUT message, que je récupère et que je mets dans mon fichier ano...

    je vous remercie pour votre aide...

    c'est vraiment bizarre l'informatique, plein de personnes aimeraient que ça ne plante pas, et moi, c'est le contraire...

  2. #2
    Membre très actif Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 941
    Par défaut
    Pourquoi n'utilises-tu pas le code erreur de retour immédiatemment après la commande de lancement de ton plsql dans ton script shell ?
    Tu testes le code erreur et suivant le cas tu arrêtes ou pas le traitement.
    .

  3. #3
    Membre confirmé Avatar de Titouf
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 177
    Par défaut
    Lorsque tu gères les exceptions, l'exécution de ta procédure PL/SQL se déroule correctement même si une exception a été levée... le code retour est donc toujours correct...
    Au départ, c'était mon idée...

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Dans la gestion de tes exceptions, pourquoi ne pas insérer les erreurs dans une table ? Si tu veux faire un fichier log, il est ensuite facile de le faire avec un simple spool.

  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
    copier/coller

    sous Unix tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sqlplus user/password@base <<EOF
    exec maprocedure;
    EOF

  6. #6
    Membre confirmé Avatar de Titouf
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 177
    Par défaut
    plaineR :
    Dans la gestion de tes exceptions, pourquoi ne pas insérer les erreurs dans une table ?
    j'y ai pensé... mais je trouve que ça fait une table pour pas grand chose, ce serait bien, si toutes les applications en avait une commune. Mais ce sera peut être ça la solution que je vais utiliser...

    Fred_D:
    sous Unix tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sqlplus user/password@base <<EOF 
    exec maprocedure; 
    EOF
    ça veut dire quoi EOF???

  7. #7
    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
    End Of File mais tu peux mettre toto... l'intérêt c'est de tagguer le début et la fin de la commande

  8. #8
    Membre confirmé Avatar de Titouf
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 177
    Par défaut
    Bon, ben ça y est j'ai fait un mixage de tout...
    j'ai utilisé le EOF de Fred_D
    j'ai utilisé des DBMS et j'ai récupéré la log dans un fichier...
    et j'ai utilisé le SQLERROR pour récupérer l'anomalie...
    Voilà, et bien,merci beaucoup à tous.

  9. #9
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut
    Pour remonter une erreur de SQL*Plus vers le shell appelant tu peux utiliser dans ton script SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    whenever SQLERROR exit 4;
    whenever OSERROR exit 5
    Apres au niveau du shell, je crois que c'est la variable $? qu'il faut tester.


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

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

Discussions similaires

  1. Lancement de spool oracle sous Unix
    Par doudou_78 dans le forum SQL
    Réponses: 0
    Dernier message: 28/01/2009, 08h40
  2. Lancement Job SAP depuis shell unix
    Par AurelGTS dans le forum SAP
    Réponses: 0
    Dernier message: 17/06/2008, 18h05
  3. [Oracle 9 Unix] Lancement serveur Apache
    Par Mihaela dans le forum Oracle
    Réponses: 10
    Dernier message: 14/09/2006, 12h58
  4. Réponses: 2
    Dernier message: 30/06/2006, 14h43
  5. Réponses: 3
    Dernier message: 10/05/2006, 18h40

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