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 :

comment tester la connexion depuis un fichier BATCH


Sujet :

Oracle

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 5
    Points : 2
    Points
    2
    Par défaut comment tester la connexion depuis un fichier BATCH
    Bonjour à toutes et tous,

    je voudrais insérer dans un script (un bien grand mot pour désigner un fichier BATCH sous windows NT) un test de connexion à une base Oracle.

    J'ai pensé faire un SPOOL sous SLQ*Plus et tester l'existence du fichier spoolé. Ca marche si la base est accessible, mais si la base n'est pas accessible SQL+ me demande 2 fois supplémentaires le username/pswd. Hors je veux un script automatique, ce test doit être transparent pour l'utilisateur.

    Question : est-il possible d'imposer à SQL*Plus de ne pas re-demander le username en cas d'échec (le mode SILENT ne fais que supprimer l'affichage) ?

    Ou alors existe-t-il un outil/utilitaire/méthode pour réaliser ce test ? Il faut que je puisse m'assurer du résultat pour orienter ensuite les traitements réalisés par mon script...

    Merci d'avance de votre aide.

    Cldt,
    Philippe.

  2. #2
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Je pense que tu cherches sqlplus -l

    Cf. http://download-west.oracle.com/docs...new.htm#970613

    SQLPLUS -L Argument
    There is a new command-line argument for the SQLPLUS command, SQLPLUS -L which specifies not to reprompt for username or password if the initial connection does not succeed. This can be useful in operating-system scripts that must either succeed or fail. It is also useful for situations where you do not want to be reprompted for connection details if the Server is not running. This option is not available with the SQL*Plus Windows graphical user interface.
    C'est seulement à partir de Oracle 9.2

    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Avec le spool ça peut marcher mais il faut utiliser l'option -s pour silent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlplus -s user/pass@base

  4. #4
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci Laly

    Mais _honte_ à moi : j'ai oublié de préciser que je tourne sur Oracle 8i... Et il n'est à ce jour pas prévu de bascule sur 9i...

    Sinon c'était l'argument dont j'avais besoin... (je l'ai essayé sous 8i au cas où... ... mais ça ne marche pas...)

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    A noter que tnsping est aussi là pour tester la connexion

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci Orafrance

    mais j'ai déjà testé l'option -s :
    la fenêtre SQL*plus s'ouvre sans aucun affichage (le silence total), mais en cas d'échec de connexion le username/paswd est redemandé 2 fois...

    En plus dans ce mode on ne comprend pas que SQL*Plus redemande le username puisque le curseur se contente de clignoter sans texte affiché... Vu de l'utilisateur c'est vraiment sybillin !

  7. #7
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Citation Envoyé par orafrance
    A noter que tnsping est aussi là pour tester la connexion
    Je ne suis pas d'accord ou alors pas entièrement : ta base peut très bien être fermée, ton tnsping peut marcher si le listener fonctionne !

    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    ha oui c'est vrai

    J'ai la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sqlplus /nolog
    spool c:\test_connection.txt
    connect user/password@base 
    spool off

  9. #9
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par lalystar
    Je ne suis pas d'accord ou alors pas entièrement : ta base peut très bien être fermée, ton tnsping peut marcher si le listener fonctionne !
    Laly.
    ha oui, zut ... décidément, ça ne me réussi pas les journées sans café

  10. #10
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Mais c'est vrai que si le tnsping passe pas c'est même pas la peine d'essayer avec SQL*Plus

    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  11. #11
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    c'est vrai mais j'essayerai même pas de me raccrocher aux branches

  12. #12
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sqlplus /nolog 
    spool c:\test_connection.txt 
    connect user/password@base 
    spool off
    fonctionne très bien !!!!!

    Même sans café c'est du bon Mr Orafrance ! 8)

    Par contre (en bon français je suis un éternel insatisfait) cela suppose de créer un script avec "user/password" en clair ... Pas cool...

    On peut toujours générer à la volée ce fichier puis le détruire dans la foulée... mais ça reste de la bidouille... Je comprends qu'Oracle ait introduit l'arguement -L pour la v9.2. Il aurait pu le faire avant !

    Bon. Pas d'autre(s) idée(s) ? Sinon je prends cette solution avec génération à la volée du fichier ".SQL".

    :

  13. #13
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Effectivement, mais même avec le -L le password est en clair

  14. #14
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bien,

    il me semble que c'est le mieux que l'on puisse faire. Je vais implémenter une solution avec génération à la volée du fichier SQL et destruction du fichier après le test pour limiter les dégâts...

    Merci à tous les 2 et ... ... pour votre rapidité !

    Je marque le sujet comme RESOLU pour les suivants.

    Philippe.

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

Discussions similaires

  1. [MS-DOS] Comment tester la presence d'un fichier
    Par fabiofabio dans le forum Windows
    Réponses: 4
    Dernier message: 20/09/2006, 09h19
  2. [VB.Net] Comment lire une url depuis un fichier .ini ?
    Par lewebdalex dans le forum VB.NET
    Réponses: 7
    Dernier message: 06/05/2006, 20h32
  3. Comment tester l'exitance d'un fichier?
    Par sheira dans le forum ASP
    Réponses: 3
    Dernier message: 15/12/2005, 15h55

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