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 :

Tester l'existence du spfile


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 58
    Points : 31
    Points
    31
    Par défaut Tester l'existence du spfile
    Bonjour

    J'ai un soucis et j'ai besoin de votre aide, voilà mon problème. Je voudrais tester si une base de données à un spfile ou pas via un .bat.

    ceci est la partie concernée de mon script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    REM Tester l'existance d'un spfile
    set spfile_flag=no
     
    set cmd_sql=%TEMP%\spfileflag_sql.sql
     
    (echo connect /as sysdba
    echo set head off
    echo set feed off
    echo select value from v$parameter where name='spfile';
    echo exit) >%cmd_sql%
     
    for /f "delims=" %%a in ('sqlplus -s %oracle_connect% @%cmd_sql%') do if /i not {%%a} == {} (set spfile_flag=yes)
     
    del %Wfic_cmd_sql%
    La variable spfile_flag devrait prendre un "yes" si la base à un spfile et un "no" le cas écheant.

    Des fois cela fonctionne des fois non, j'ai beau chercher dans mon code à quoi c'est dû mais je bloque. est ce dû à la version d'oracle? je teste sur une 9 et une 10g.

    quelqu'un a une idée, sinon s'il y a une autre méthode plus simple pour faire mon test je suis preneuse

    Merci d'avance pour votre aide

  2. #2
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    Ca marche si tu fais la connection en-dehors du script sql.
    Sinon, ca retourne {Connected.}, c'est une variable non-vide, et donc ton flag passe a yes.

    Nicolas.

  3. #3
    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
    Citation Envoyé par NGasparotto Voir le message
    Sinon, ca retourne {Connected.}
    voilà ça a fait tilt!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Y:\>c:\Apps\Oracle\client1020_eng\BIN\sqlplus -s /nolog
    connect scott/tiger
     
    Y:\>c:\Apps\Oracle\client920_ENG\bin\sqlplus -s /nolog
    connect scott/tiger
    Connected.
    quit
    En 10g en mode silencieux, le Connected n'est plus affiché

    PS: merci a Nicolas pour cet indice

  4. #4
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    Laurent, j'adore tes smiles tres explicites.
    Enfin, tout ca pour dire qu'avant le client 10.x, la connection silencieuse n'etait pas si silencieuse que ca.

    Nicolas.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 58
    Points : 31
    Points
    31
    Par défaut
    Bonjour
    Merci pour vos reponses, et je m'excuse poiur le retard (j'avais rencontré un problème plus urgent )

    oui effectivement c'est pour ça que ça ne marche pas sur ma base de version 9, donc je pense mettre le résultat de l'execution dans un fichier.log et puis lire ce fichier et rechercher l'exisctence d'un *.ora, mais il y a pas une solution plus simple?

  6. #6
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    Citation Envoyé par rojina29 Voir le message
    ...donc je pense mettre le résultat de l'execution dans un fichier.log
    Pourquoi ne pas faire la connection sur le "sqlplus -s" plutot qu'avec le connect ? Ca marche tres bien, j'ai dit plus haut, en dehors du script sql, mais sqlplus -s user/pwd... fonctionne tres bien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    REM Tester l'existance d'un spfile
    SET spfile_flag=no
     
    SET cmd_sql=%TEMP%\spfileflag_sql.sql
     
    (echo SET head off
    echo SET feed off
    echo SELECT value FROM v$parameter WHERE name='spfile';
    echo exit) >%cmd_sql%
     
    FOR /f "delims=" %%a IN ('sqlplus -s mouserprefere/passworduserprefere@mapetitebase @%cmd_sql%') do IF /i NOT {%%a} == {} (SET spfile_flag=yes)
     
    echo %spfile_flag%
    Nicolas.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 58
    Points : 31
    Points
    31
    Par défaut
    oui je viens de tester, on peux faire le select sur v$parameter meme si on est pas sysdba, vous avez raison, mais mon test ne marche pas sur une autre version à part la 10g, j'essaye maintenant de voir pourquoi

    merci pour votre aide

  8. #8
    Membre confirmé Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Points : 603
    Points
    603
    Par défaut
    Pourtant, la modification que j'ai apporte a ton code fonctionne depuis un client 9i vers une base 9i ainsi que vers une base 10g.

    Nicolas.

  9. #9
    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
    en trichant un peu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    echo sho parameter spfile|sqlplus -L -s scott/tiger|find ".ora"
    if %ERRORLEVEL% == 0 (set spfile=yes)

Discussions similaires

  1. [JDBC]Tester l'existence d une table
    Par juflata dans le forum JDBC
    Réponses: 7
    Dernier message: 29/06/2004, 15h27
  2. tester l'existance d'un enregistrement
    Par LoLoSS dans le forum Langage SQL
    Réponses: 5
    Dernier message: 07/05/2004, 14h58
  3. tester l existence d un fichier sous turbo pascal
    Par Newllite dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 25/01/2004, 12h47
  4. Peut on tester l'existence d'un fichier ?
    Par Alamassepointcom dans le forum Flash
    Réponses: 2
    Dernier message: 10/10/2002, 12h10
  5. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 05/09/2002, 13h55

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