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

Oracle Discussion :

EXIT en SQLPLUS


Sujet :

Oracle

  1. #1
    Membre confirmé Avatar de Vince7-7
    Homme Profil pro
    Fondateur et dirigeant de la société Oramatica. http://www.oramatica.com
    Inscrit en
    Janvier 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Fondateur et dirigeant de la société Oramatica. http://www.oramatica.com

    Informations forums :
    Inscription : Janvier 2007
    Messages : 125
    Par défaut EXIT en SQLPLUS
    Salut.
    Bon je cherche sans trouver deuis un moment déja.
    En fait j'ai un script sqlplus qui déclare une variable. Cette variable je la passe en paramètre OUT dans une procédure. Ensuite je fais un exit avec la variable
    mais je n'arrive pas à récupérer la valeur dans mon shell.
    Et donc ça donne ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    set serveroutput on
     
    variable v_exit VARCHAR2(2);
     
    exec dbms_stats.GATHER_TABLE_STATS('&6','T_MAIL_DEST');
     
    begin
    	pck_mail.main('&1','&2','&3','&4','&5',:v_exit);
    end;
    /
     
    exit :v_exit
    Je me trouve avec cette erreur:
    Usage: { EXIT | QUIT } [ SUCCESS | FAILURE | WARNING | n |
    <variable> | :<bindvariable> ] [ COMMIT | ROLLBACK ]
    Disconnected from Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
    JServer Release 9.2.0.5.0 - Production

    Je suis en 9.2.5 et le shell est en ksh.
    Help!!!

  2. #2
    Expert confirmé 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
    Par défaut
    Il faut que v_exit est de type number et non pas varchar2

  3. #3
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Bonjour,

    en plus il faut mettre une valeur a la variable :execute :l_out :=3;


    Code sql : 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
     
    create or replace procedure test_out(v_in in number)
    as 
    v_out number;
    begin
    v_out := v_in;
    dbms_output.put_line ('TEST:' ||v_out);
    end;
     
     
     set serverout on
    > var l_out number;
    > execute :l_out :=3;
     
     exec test_out(:l_out);
    TEST:3
     
    PL/SQL procedure successfully completed.
     
    > exit :l_out
    Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options

  4. #4
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Sous unix, le return code est un entier de 0 à 255 donc je ne suis pas sur que ce soit la bonne solution !
    Cordialement,
    Franck.

  5. #5
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Citation Envoyé par pachot Voir le message
    Bonjour,
    Sous unix, le return code est un entier de 0 à 255 donc je ne suis pas sur que ce soit la bonne solution !
    Cordialement,
    Franck.
    Bonjour,

    ce test a ete fait sous linux

    comme tu as vu de toute facon c'est du sqlplus alors que ce soit du VMS derriere ou du MVS ...

    alors testons sous bash

    On va volontairement mettre en erreur exec test_out(A255)


    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
    ##!/bin/bash
    #
     
     
     
     
    txt=$(sqlplus -s scott/tiger <<!
                    exec test_out(A255);
                    exit sql.sqlcode;
    !
            )
     
    # VAL=`echo $txt`
    ERRORCODE=$?
     
    if [ $ERRORCODE != 0 ]
    then
      echo "********************"
      echo "ERROR: The SQL Plus Command Failed. ErrorCode: $ERRORCODE"
    else
      echo "********************"
      echo "SQL Plus Successfully Ran. ErrorCode: $ERRORCODE"
    fi
    ~
    Resultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      ./test_3.sh
    ********************
    ERROR: The SQL Plus Command Failed. ErrorCode: 150

  6. #6
    Membre confirmé Avatar de Vince7-7
    Homme Profil pro
    Fondateur et dirigeant de la société Oramatica. http://www.oramatica.com
    Inscrit en
    Janvier 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Fondateur et dirigeant de la société Oramatica. http://www.oramatica.com

    Informations forums :
    Inscription : Janvier 2007
    Messages : 125
    Par défaut
    Ok. Merci à tous de vos réponses. Vous m'avez bien aidé à trouver la solution.

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

Discussions similaires

  1. Pb autocommit lors d'un exit en sqlplus
    Par Cathy dans le forum Sql*Plus
    Réponses: 0
    Dernier message: 23/11/2010, 11h26
  2. [VB6] comment renvoyer un exit code en VB6 ?
    Par VVE dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 13/05/2004, 13h30
  3. Script SQL avec des EXIT SQL.SQLCODE
    Par fidififouille dans le forum Oracle
    Réponses: 14
    Dernier message: 23/04/2004, 16h45
  4. return ();exit() ;
    Par Zazeglu dans le forum C
    Réponses: 12
    Dernier message: 10/10/2003, 20h56
  5. [langage] exit
    Par aw dans le forum Langage
    Réponses: 2
    Dernier message: 12/06/2003, 11h10

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