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 :

Probleme dans le passage d'un paramètre


Sujet :

Sql*Plus Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Par défaut Probleme dans le passage d'un paramètre
    Bonjour,

    Je suis confronté au problème suivant :

    Je lance un script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [ora10g@trinculo /oradatD31/orabin/scripts]./ora_stop_inst.sh TESTDB immediate
    dont voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #!/usr/bin/sh
    . ora_librairie.sh
    ORACLE_SID=$1
    export ORACLE_SID
    MODE=$2
    export MODE
    ora_stop_inst $MODE
    et le code de la fonction appelée dans la librairie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ora_stop_inst ()
    {
    $ORACLE_HOME/bin/sqlplus /nolog << FIN
    connect / as sysdba;
    select instance_name from v\$instance;
    shutdown $MODE;
    exit
    FIN
    }
    Ce script fonctionne très bien mais je ne veux pas avoir le résultat à l'écran, simplement dans un spool.

    Donc pour cela je fais appel à un script sql dans lequel je positionne les variables 'echo' et 'term'.

    Mais dans ce cas le shutdown ne passe pas ... voici le code modifié :

    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
     
    #!/usr/bin/sh
    . ora_librairie.sh
    ORACLE_SID=$1
    export ORACLE_SID
    MODE=$2
    export MODE
    ora_stop_inst $MODE
     
    /** fonction appelée dans la librairie **/
    ora_stop_inst ()
    {
    $ORACLE_HOME/bin/sqlplus -s /nolog << FIN
    start stop_inst.sql
    FIN
    }
     
    /** script stop_inst.sql **/
    spool stop_inst.txt
    connect / as sysdba;
    !echo $MODE
    shutdown $MODE;
    spool off
    exit
    et le plus étrange (enfin selon moi) c'est que je récupère bien le contenu de ma variable MODE (!echo $MODE) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    immediate
     
    SP2-0717: illegal SHUTDOWN option
    Curieux non ?

    Cdt,
    A.Personnat

  2. #2
    Membre émérite Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Par défaut
    as tu essayé sans mettre le paramètre $MODE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /** script stop_inst.sql **/
    spool stop_inst.txt
    connect / AS sysdba;
    !echo $MODE
    shutdown;
    spool off
    exit

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Par défaut
    Oui cela fonctionne bien mais l'interêt de passer le paramètre permet de stipuler le mode 'immediate', 'transactionnal', 'abort'.

    Je ne comprends pas pourquoi Oracle me retourne cette erreur ??

    Merci pour vos réponses,
    A.Personnat

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /** fonction appelée dans la librairie **/
    ora_stop_inst ()
    {
    $ORACLE_HOME/bin/sqlplus -s /nolog << FIN
    start stop_inst.sql $MODE
    FIN
    }
     
    /** script stop_inst.sql **/
    spool stop_inst.txt
    connect / AS sysdba;
    shutdown &1;
    spool off
    exit

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

Discussions similaires

  1. Probleme dans le passage des variables dans URL
    Par GarsDuCalvados dans le forum Langage
    Réponses: 16
    Dernier message: 04/01/2011, 14h02
  2. Réponses: 4
    Dernier message: 01/01/2007, 10h26
  3. Passage de plusieurs paramètres dans un lien
    Par Greldinard dans le forum Langage
    Réponses: 4
    Dernier message: 09/10/2006, 17h28
  4. [SQL Server] Passage d'un paramètre dans une procédure
    Par navis84 dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/01/2005, 13h19
  5. probleme lors du passage de paramètre
    Par maxmj dans le forum ASP
    Réponses: 4
    Dernier message: 18/11/2003, 00h15

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