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

Scripts/Batch Discussion :

recuperation du resultat d'une commande dans un batch


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 21
    Points : 16
    Points
    16
    Par défaut recuperation du resultat d'une commande dans un batch
    bonjour,

    est il possible de recuperer le resutat d'une commande sqlplus (dans un .bat) et mettre le résultat dans une variable pour ensuite utiliser cette variable dans un if ?

    Merci,

  2. #2
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    En utilisant un spool parametré comme il faut dans ton sql tu pourras utiliser le fichier généré par SQL+ dans ton fichier batch.
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  3. #3
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    On peut faire ca avec une boucle for, donne moi ta commande je te fait la boucle

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    concernant le spool, je sais mais le probleme c'est que lorsque je mets le spool, si ma requete ne retroune rien, le fichier est quand meme créé.
    En fait ce que je veux c'est que si la requete ne retourne rien, le fichier n'est pas créé. Pour cela, je pensais faire une premiere requete qui fait un count(*) et qui me permet d'avoir le nombre de lignes retournées.
    Dans mon batch, j'aimerais recuperer ce nombre de lignes, et si le nombre est different de zero alors je lance ma requete sql qui contient le spool et donc j'ai mon fichier de créé. Si le count retourne zero, je ne lance pas le sql qui contient le spool donc la fichier n'est pas créé.
    J'espere que vous avez compris.....

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    la commande est :
    sqlplus login/pass@mabase @C:\test\test.sql

    Merci,

  6. #6
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Essaye ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /f "delims=" %%i in ('sqlplus login/pass@mabase @C:\test\test.sql') do set VrTest=%%i

  7. #7
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Citation Envoyé par liloo974
    concernant le spool, je sais mais le probleme c'est que lorsque je mets le spool, si ma requete ne retroune rien, le fichier est quand meme créé.
    En fait ce que je veux c'est que si la requete ne retourne rien, le fichier n'est pas créé. Pour cela, je pensais faire une premiere requete qui fait un count(*) et qui me permet d'avoir le nombre de lignes retournées.
    Dans mon batch, j'aimerais recuperer ce nombre de lignes, et si le nombre est different de zero alors je lance ma requete sql qui contient le spool et donc j'ai mon fichier de créé. Si le count retourne zero, je ne lance pas le sql qui contient le spool donc la fichier n'est pas créé.
    J'espere que vous avez compris.....

    Teste la taille du fichier crée par le spool, si il est vide supprime le. Ca sera bien plus efficace que d'effectuer un count(*) préalable.
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  8. #8
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Drizzt [Drone38]
    Teste la taille du fichier crée par le spool, si il est vide supprime le. Ca sera bien plus efficace que d'effectuer un count(*) préalable.
    Oui mais comme le fichier contient quand meme quelque chose "aucune ligne retrounée", je ne peux pas tester suivant la taille car il n'est pas vide !!!

  9. #9
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    c'est bon, j'ai réussi.
    en fait je n'ai qu'un fichier sql avec ma requete ensuite dans mon batch c'est fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    sqlplus login/mdp@mabase @C:\test\requete.sql
    FOR /F "delims= " %%i in (fichier.txt) do set var= %%i
    IF %var%==aucune del c:\test\fichier.txt

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

Discussions similaires

  1. Copier le resultat d'une commande dans un fichier
    Par Cliff dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 01/02/2007, 16h28
  2. Comment récupérer le résultat d'une requête dans un tableau ?
    Par Kylen dans le forum Accès aux données
    Réponses: 1
    Dernier message: 14/06/2006, 19h32
  3. comment recuperer le resultat d'une commande dos en java?
    Par trunks-tr dans le forum Général Java
    Réponses: 49
    Dernier message: 06/06/2006, 14h25
  4. Réponses: 2
    Dernier message: 27/02/2006, 15h59
  5. Recuperer le resultat d'une commande
    Par vbcasimir dans le forum Linux
    Réponses: 2
    Dernier message: 08/12/2005, 10h11

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