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

VBScript Discussion :

[VBScript] Connexion oracle en sysdba


Sujet :

VBScript

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 42
    Points
    42
    Par défaut [VBScript] Connexion oracle en sysdba
    Bonjour j'ai un script VBS à faire je sais comment me connecter avec un script vbs à une base de données oracle avec un user / mdp comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    set cn = CreateObject("ADODB.Connection")      
    set rs = CreateObject("ADODB.Recordset")       
        ConnectionString ="Provider=OraOLEDB.Oracle; Data Source=" & _
        "(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST="&computername&")(PORT=1521)))(CONNECT_DATA=(SID="&SERVICE &")(SERVER=DEDICATED)));" & _
        "User Id=system;Password="&PASSWORD &";"
    cn.Open connectionString
    mais comment on fait si on veut se connecter en "sqlplus / as sysdba" par exemple ?

    merci de vos réponses

    Cordialement Galène

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    Up
    quelqu'un aurait une solution deux semaines que je cherche sans résultat ...

  3. #3
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 417
    Points : 5 816
    Points
    5 816
    Par défaut
    Il fallait voir du côte de la FAQ et du côté du FORUM

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Il peut facilement avoir des complications dans un environment avec beaucoup de considérations et de mélés. Dans le cas plus simple, j'arrive à faire des connections simplement par Microsoft ODBC for Oracle avec trois paramètres : le nom du service, le nom du membre et son mot de passe, comme ça.
    Code vbs : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sid="xxx"
    user="system"    'si vous connectez au console avec "sys as sysdba"
    pwd="zzz"
    sconn="DRIVER={Microsoft ODBC for Oracle};SERVER=" & sid & ";User Id=" & user & ";Password=" & pwd & ";"
    Une chose la plus importante et souvent oubliée c'est d'avoir le service de "listener" entamé (par défaut avec des informations notées dans listener.ora, mais ça peut être d'autre chose si on fait beaucoup de customisation ...) Si vous arrivez d'avoir une erreur dans ce sens, une méthode simple est de faire une enquête via le mmc:services. Si le listener n'est pas entamé, faites-le entamé par là.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    Il fallait voir du côte de la FAQ et du côté du FORUM
    Ils ne disent pas comment se connecter via un script vbscript mais juste avec sqlplus



    J'ai essayé ta solution tsuji, mais elle ne fonctionne pas elle me renvoie l' err.number "3704" et l' err.source est "ADODB.Connection"

    je sais pas si je fais quelque chose de mal mais rien ne semble fonctionner

  6. #6
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Le code ressemble à quoi ? Il semble plutôt la connexion est faite ?

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    mon code ressemble à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    set cn = CreateObject("ADODB.Connection")
    	   set rs = CreateObject("ADODB.Recordset")
     
     
    	sid=SERVICE
    	user="sys as sysdba"   'si vous connectez au console avec "sys as sysdba"
    	pwd=PASSWORD
    	ConnectionString ="DRIVER={Microsoft ODBC for Oracle};SERVER=" & sid & ";User Id=" & user & ";Password=" & pwd & ";"
            cn.Open connectionString
    non la connection ne se fait pas, après mon "cn.Open connectionString" mon err.number est "-2147217843" et mon err.source est " Microsoft OLE DB Provider for ODBC Drivers"

  8. #8
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Esseyez user="system" et non pas "sys as sysdba". C'est exactement je voulais dire.

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    oui ça marche j'arrive à me connecter mais le problème c'est que je ne suis pas connecter avec les droits sysdba je suis juste connecté avec l'utilisateur system

  10. #10
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Mais qu'est-ce que vous voulez faire avec sys qui ne puisse pas faire avec system ? (sauf start/stop la bdd) qui a déjà bien trop de puissance normalement et n'est pas encouragé de le faire tout le temps.

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    en faite je veux récupérer l'état de ma base de données (open mount etc )

    quand la base est open il n'y a pas de soucis je peux me connecter en system mais lorsque la base est mounted il n'y a que sys qui peut s'y connecter

  12. #12
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Dans des cas ou user system se trouve encore d'avoir insuffiçant de privilège et que le privilège sysdba explicit est essentiel, comme pour des users inscrits dans pwfile ou de ce genre, je pense qu'on a effectivement une difficulté de se mettre au travail avec ado classique. Je trouve qu'on y a mal à gérer la privilège dans la chaîne de connexion.

    La situation s'améliore énormément pour ado.net. Oracle a publié aussi un mis-à-jour de son ODAC que vous pouvez télécharger là
    http://www.oracle.com/technetwork/to...ds-160392.html
    qui est nécessaire pour remplir le vide dès la retraite à partir de v.4 de .NET du namespace System.Data.OracleClient. Les dll's de ODAC supportent bien la chaîne de connexion avec privilège comme
    Code text : Sélectionner tout - Visualiser dans une fenêtre à part
    "User Id=xxx;Password=yyy;Data Source=SID;DBA Privilege=sysdba;"

    Si on est forcé de tirer ce genre d'info en oracle db, je pense qu'on peut écrire un petit .cs pour ce but - ça j'en suis sûr possible; si l'envergure du travail est moins important, je pense on peut le faire aussi via powershell script qui est un par en avance de vbs pour les fonctionalités plus à nos jours.

    Voilà ce que je vois comme approches possibles.

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    Salut !

    J'ai enfin réussi à trouver la solution à mon problème

    voici la méthode que j'ai trouvé


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Set sh  = CreateObject("WScript.Shell")
    		set cmd = CreateObject("ADODB.Recordset")
    		Set cmd = sh.Exec("cmd /c "& ORACLE_HOME & "\BIN\sqlplus.exe -s /@"&SERVICE &" as sysdba @Z:\Partage\Sonde\essai\test_recordset\requetesql.sql")
     
    		result_cmd = split(cmd.StdOut.ReadAll,VbCrLf)
     
    		wscript.echo result_cmd (0)
    		wscript.echo result_cmd (1)
    		wscript.echo result_cmd (2)
    		wscript.echo result_cmd (3)
    		wscript.echo result_cmd (4)
    cette partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @Z:\Partage\Sonde\essai\test_recordset\requetesql.sql
    permet d'aller chercher un fichier .sql où il y a les instructions sql à exécuter

    son contenu ressemble à ça pour ma part
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    whenever sqlerror exit 2;
    		set echo off
    		set linesize 10
    		set pagesize 10
    		set head off
     
    		SELECT
    			STATUS,
    			VERSION,
    			to_char(STARTUP_TIME, 'dd/mm/yyyy hh24:mi:ss')
    		FROM
    			V$INSTANCE;
    		quit
    et cette partie la permet de récupérer le contenu de la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    result_cmd = split(cmd.StdOut.ReadAll,VbCrLf)
     
    		wscript.echo result_cmd (0)
    		wscript.echo result_cmd (1)
    		wscript.echo result_cmd (2)
    		wscript.echo result_cmd (3)
    		wscript.echo result_cmd (4)

  14. #14
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Si cela vous plait, tant mieux. Juste une remarque ou deux. D'abord ce n'est pas ado, mais on peut l'épargner si on trouve autre moyen de faire quelque chose et ce n'est pas grave. Second, c'est une requête sur v$instance, ça veut dire préalablement le bdd est montée et ouverte. Par conséquence, je ne vois pas comment le compte system ne puisse accomplir ce qu'on veut par ado. Mais, comme vous avez trouvé une solution qui vous plaît, c'est parfait.

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 37
    Points : 42
    Points
    42
    Par défaut
    Oui je suis d'accord ma ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set cmd = CreateObject("ADODB.Recordset")
    ne servait à rien ^^

    Pour le deuxième point, lorsque ma base est montée et qu'elle n'est pas open, le compte system ne peut pas se connecter à la base de données pour faire une requête sur v$instance.

  16. #16
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Dans ce cas là, je suis bien d'accord.

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

Discussions similaires

  1. [VBScript] Connexion en sysdba
    Par galene86 dans le forum Connexions aux bases de données
    Réponses: 0
    Dernier message: 15/05/2015, 17h00
  2. Connexion à Oracle Entreprise Manager
    Par black_code dans le forum Entreprise Manager
    Réponses: 4
    Dernier message: 11/11/2005, 15h29
  3. Connexion à Oracle depuis EXCEL
    Par Megaxel dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/10/2005, 13h04
  4. connexion oracle - choix d'architecture et langage
    Par ludvo dans le forum Général Conception Web
    Réponses: 8
    Dernier message: 13/09/2005, 22h33
  5. [Oracle] Pb connexion ORACLE (PHP5)
    Par Mikl dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/05/2005, 20h23

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