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*Plus Oracle Discussion :

Appel procédure PL/SQL et récuperation de variable depuis un script shell


Sujet :

Sql*Plus Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Points : 10
    Points
    10
    Par défaut Appel procédure PL/SQL et récuperation de variable depuis un script shell
    Bonjour,

    J'essaye d'appeler une procédure PL SQL depuis un script shell, mais je ne vois pas comment récupérer la variable de sortie de ma procédure.

    Voici ce que j'ai essayer de faire, mais ça ne marche pas ! pouvez-vous me dire si vous voyer quelque chose qui ne va pas

    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
    22
    23
    24
    25
    26
    27
    28
    29
    #!/bin/bash
    PATH_R=`pwd`
    . "$PATH_R"/main/.var
    . "$PATH_R"/02_configuration/.export
    . "$PATH_R"/02_configuration/"$ENV"
     
    echo "Phase ADRESSE"
    VAR='sqlplus /NOLOG <<!
    connect $USER_MIG@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=$MIG_SERVER)(PORT=$MIG_PORT)))(CONNECT_DATA=(SID=$MIG_SID)));
    set serveroutput on;
    set heading off;
    set feedback off;
    set linesize 1000;
    declare 
    out_value number;
     
    BEGIN
    exec LDE_MIGRATION_BASE2.MIG_PACK_CHAINE_CYC.PRC_TRAIT_MIG_CYC_REQ('ADRESSE', out_value);
    dbms_output.put_line(out_value);
    END;
    /
    exit;
    !'
    if [ $VAR = 0 ]
    then
     echo "OK"
    else
     echo "Erreur numero : $VAR"
    fin

    Au fait ce que j'essaye de récupérer c'est la variable de sortie out_value de la procédure PRC_TRAIT_MIG_CYC_REQ

    Merci pour votre aide

    Cordialement,

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Dans un premier temps, que t'affiche echo $VAR ?
    Qu'est-ce qui est affiché lorsque tu exécutes ta commande Sql*Plus toute seule ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Points : 10
    Points
    10
    Par défaut
    Voici ce que ça m'affiche quand j’exécute le script

    Nom : script adresse sh.png
Affichages : 2619
Taille : 17,6 Ko

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Première étape :
    Modifier les lignes 8 et 23 de ton script shell ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VAR=$(sqlplus /NOLOG <<!
    Quel est le résultat ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Points : 10
    Points
    10
    Par défaut
    Avec ces modifications, voici ce que ça donne
    Nom : shell3.png
Affichages : 2572
Taille : 18,2 Ko

    cela a l'air de bien marcher, mais il y'a quelques soucis :

    - Warning
    - Problème affichage : Je veux que le message "erreur num" soit afficher à la fin et non pas au début.
    - la condition IF [ $VAR = 0 ] n'a pas l'air de bien marcher, car ça m'afficher 0 (voir image dernière ligne), or si VAR = 0 ça doit afficher OK

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    C'est bien la valeur de out_value que tu cherches à récupérer ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Points : 10
    Points
    10
    Par défaut
    oui c'est bien ça

  8. #8
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Et comme ça ?
    Code bash : 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
    22
    23
    24
    25
    26
    27
    28
    29
    #!/bin/bash -vx
    PATH_R=$(pwd)
    . "${PATH_R}/main/.var"
    . "${PATH_R}/02_configuration/.export"
    . "${PATH_R}/02_configuration/${ENV}"
     
    echo "Phase ADRESSE"
    VAR=$(sqlplus /NOLOG <<! | grep '§§.*§§' | sed 's/^§§//;s/§§$//'  
      connect ${USER_MIG}@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=${MIG_SERVER})(PORT=${MIG_PORT})))(CONNECT_DATA=(SID=${MIG_SID})));
      set serveroutput on;
      set heading off;
      set feedback off;
      set linesize 1000;
      declare 
        out_value number;
      begin
        exec LDE_MIGRATION_BASE2.MIG_PACK_CHAINE_CYC.PRC_TRAIT_MIG_CYC_REQ('ADRESSE', out_value);
        dbms_output.put_line('§§' || out_value || '§§');
      end;
      /
      exit;
    !
    )
    if [ "${VAR}" = 0 ]
    then
     echo "OK"
    else
     echo "Erreur numero : $VAR"
    fi
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Points : 10
    Points
    10
    Par défaut
    La la a procédure n'a pas été exécutée
    Voici ce que ça affiche :
    Nom : shell4.png
Affichages : 2318
Taille : 1,4 Ko

    j'essaye d'analyser les modification que vous avez fait

  10. #10
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    C'est étonnant... Il n'a affiché que ça ? Aucune trace de l’exécution du script ?

    Et en changeant la ligne 8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VAR=$(sqlplus /NOLOG <<! | grep '§§' | sed 's/^§§//;s/§§ *$//'
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Points : 10
    Points
    10
    Par défaut
    Toujours la même chose
    Aucune trace de l’exécution !!

  12. #12
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Comment lances-tu l'exécution de ton script ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Points : 10
    Points
    10

  14. #14
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Petite modification sur l'ordre des commandes :
    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
    VAR=$(echo "  
      connect ${USER_MIG}@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=${MIG_SERVER})(PORT=${MIG_PORT})))(CONNECT_DATA=(SID=${MIG_SID})));
      set serveroutput on;
      set heading off;
      set feedback off;
      set linesize 1000;
      declare 
        out_value number;
      begin
        exec LDE_MIGRATION_BASE2.MIG_PACK_CHAINE_CYC.PRC_TRAIT_MIG_CYC_REQ('ADRESSE', out_value);
        dbms_output.put_line('§§' || out_value || '§§');
      end;
      /
      exit;
    " | sqlplus /NOLOG | grep '§§' | sed 's/^§§//;s/§§$//'
    )
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  15. #15
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Points : 10
    Points
    10
    Par défaut
    Ok j'essaierai ça demain matin et je vous tiendrai au courant
    merci bcp pour votre aide

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 29
    Points : 10
    Points
    10
    Par défaut
    ça ne marche pas comme ça
    il n'y a aucune trace d'exécution

  17. #17
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bash -vx main/adresse.sh
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. Appel procédure PL/SQL avec Hibernate avec paramètre retour OUT
    Par rom292 dans le forum Persistance des données
    Réponses: 2
    Dernier message: 02/06/2012, 20h15
  2. Appel d'une procédure PL/SQL contenue dans une variable
    Par daniel.lemuet dans le forum PL/SQL
    Réponses: 2
    Dernier message: 21/01/2010, 17h48
  3. récuperer une variable d'un script php vers un javascript
    Par naazih dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 26/05/2008, 09h57
  4. Appel Procédure stockée SQL qui plante
    Par Daniel MOREAU dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/04/2007, 08h55
  5. Réponses: 4
    Dernier message: 06/06/2006, 12h27

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