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 :

Log sqplus dans une variable


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 48
    Points : 40
    Points
    40
    Par défaut Log sqplus dans une variable
    Bonjour à tous,

    je suis novice dans le developpement de shell et je rencontre une difficulté.

    j'aimerai recuperer dans une variable le retour d'une commande sqlplus que ce soit le resultat de la requte ou tout simplement l'erreur generé

    acteullement l'erreur généé est envoyé directement dans un fichier

    voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sqlplus -s toto@toto <<! >> $LOG_FILE 2>&1
    	 whenever sqlerror exit failure;
    	execute PACK_BIDULE.EXPORT_TRUC('$REP_EXTRACT','$nom_fic');
    !
    si jamais cette commande retourne une erreur elle est directement inséré dans le fichier correspondant à la variable $LOG_FILE

    je souhaite maintenant recupérer aussi cette erreur mais dans une varaible pour pouvoir ensuite l'utilisé comme par exmple l'inserer dans une table X

    j'ai tenté çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    logtest=`sqlplus -s toto@toto <<! >> $LOG_FILE 2>&1
    	 whenever sqlerror exit failure;
    	execute PACK_BIDULE.EXPORT_TRUC('$REP_EXTRACT','$nom_fic');
    !`
    mais malheureusemetn rien n'est retourné dans la variable logtest lors de l'affichage

    avez vous des suggestions ou même la réponse à mon problème

    cordialement

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    il manque un EXIT x où x est la valeur de retour que tu veux.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    c'est à dire je pige pas trop, mettons que ma procdure que j'appelle via sqlplus tombe en erreur je veux recupérer donc cette erreur dans une variable de mon shell pour ensuite l'insérer dans une table.

    il doit bien exister quelque chose que des bidouille de passer par un fichier le lire prendre seulement les ora et virer les aspostophe....
    méthode que j'ai du mal à mettre en place

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par toitoine01 Voir le message
    je veux recupérer donc cette erreur dans une variable de mon shell pour ensuite l'insérer dans une table.
    c'est pas plus simple de faire une exception qui va insérer le SQLCODE dans le script SQL lui-même ou mieux, dans la procédure appelée ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    certainement mais on me demande le gérer comme décris ci dessus.

    il doit bien exister un moyen de recuperer proporement les erreur das le script shell

    en tout cas merci de m'aider

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHENEVER SQLERROR EXIT SQL.SQLCODE;

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 48
    Points : 40
    Points
    40
    Par défaut
    j'ai trouver une solution, j'envoie le resultat de ma requete (erreur ou non) dans un fichier temporaire ensuite j'excute un sed que j'envoie dans une variable que j'utilise apres dans ma table et ensuite je concatène mon fichier de log principale avec mon fichier temporaire

    voilà merci encore pour l'aide je passe ce post en résolu

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

Discussions similaires

  1. Stocker un noeud dans une variable
    Par Devotion dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 23/09/2004, 17h02
  2. [Sybase] résultat d'un select dans une variable
    Par stoz dans le forum Sybase
    Réponses: 2
    Dernier message: 14/09/2004, 14h28
  3. Résultat d'une requête dans une variable...
    Par Hoegaarden dans le forum Bases de données
    Réponses: 6
    Dernier message: 28/04/2004, 13h51
  4. Réponses: 6
    Dernier message: 24/07/2003, 12h39
  5. [langage] Extraire un block dans une variable multiligne
    Par |DUCATI| DesMo dans le forum Langage
    Réponses: 9
    Dernier message: 11/02/2003, 14h56

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