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 :

Passage de paramètres de sortie d'un script sql dans un script shell


Sujet :

SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Passage de paramètres de sortie d'un script sql dans un script shell
    Bonjour,
    Même après 2 jours de recherches je ne trouve pas la solution à mon problème...le voici :

    Dans un script shell j'ai besoin de récupérer 2 valeurs (param2 et param3) en sortie de mon script sql appelé dans le shell.

    Voici le code dans mon shell où j'appelle le sql:

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for numfeu in $(cat varnumfeu); do echo "$numfeu" ; 
    sqlplus -silent $USERID_BW << EOF >>$REPLOG/purge.out 2>&1 
    @$REPORA/purge.sql '$numfeu' 'param2' 'param3'
    exit; 
    EOF

    Voici mon script SQL "purge.sql" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ...
    define numfeu = &1
    ...
    if (select * from BW_COM where COM_REFPRD= '&numfeu') is not null 
    then 
    if com_etaprd in ('EN COURS','MISE EN SERVICE') 
    then 
    param2 = 'no' 
    param3 ='feuillet actif' 
    ... 
    end if
    J'arrive à passer mon paramètre 1 ($numfeu) mais je n'arrive pas à récupèrer les paramètres en retour...
    Comment puis-je récupérer les valeurs param1 et param2 dans une variable de mon script shell si c'est possible?

    Merci d'avance pour votre aide!

  2. #2
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut exit comment?
    Merci pour ta réponse mais j'ai fait des essais et rien ne marche..
    J'ai un exit dans mon shell. Est-ce bien dans le sql que je rajoute EXIT...?

    est-ce que je déclare aussi mon param2 comme "define param2 =&2" ?
    et ensuite dans le code sql:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    begin
    if (select BW_COM.COM_ETAPRD from BW_COM where COM_REFPRD='&numfeu') is not null 
    then &param2='no';
    exit &param2;
    end;
    Merci encore...

  4. #4
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 19
    Points : 108
    Points
    108
    Par défaut
    Bonjour,

    essayez avec un RETURN :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    begin
    if (select BW_COM.COM_ETAPRD from BW_COM where COM_REFPRD='&numfeu') is not null 
    then &param2='no';
    RETURN &param2;
    end;

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    il faut passer par l'interface d'entrée sortie dbms_output ou utiliser print

    ex:

    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
    sqlplus -silent $USERID_BW << EOF >>$REPLOG/purge.out
    var param2 varchar2(30)
    var param3 varchar2(30)
    begin
      if (TRUE)
      then
        :param2 := 'no';
        :param3 := 'feuillet actif';
      end if;
    end;
    /
    print param2
    print param3
    quit
    EOF
     
    PARAM2=$(awk '/^PARAM2/{getline;getline;print}' $REPLOG/purge.out)
    PARAM3=$(awk '/^PARAM3/{getline;getline;print}' $REPLOG/purge.out)
     
    echo param2=$PARAM2 param3=$PARAM3
    ... param2=no param3=feuillet actif
    Okay, c'est atroce, mais bon, il faut passer par là...

Discussions similaires

  1. script SQL dans un script SQL
    Par baime dans le forum Développement
    Réponses: 0
    Dernier message: 27/02/2014, 15h52
  2. Réponses: 5
    Dernier message: 16/03/2007, 12h16
  3. Réponses: 7
    Dernier message: 10/01/2007, 20h13
  4. [MySQL] Problème de requêtes SQL dans un script
    Par Nefret dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 08/09/2005, 15h08
  5. Appel d'un script SQL dans une procdure stockée
    Par doudou10000 dans le forum Oracle
    Réponses: 10
    Dernier message: 01/12/2004, 10h01

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