Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2319 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Se connecter à une Base ORACLE avec SQL SERVER 2005

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Se connecter à une Base ORACLE avec SQL SERVER 2005

n°1318195
Profil sup​primé
Posté le 03-03-2006 à 21:55:19  answer
 

Bonjour,
 
J'ai une base au format ORACLE (un entrepôt de données).
 
J'aimerais utiliser les outils d'analyse de SQL SERVER 2005 (analysis service et report service) qui sont plus simples à utilisée que ceux d'Oracle (si il y en a).
 
Tout d'abord est-ce possible ?
 
J'ai un PC avec ORacle 9i et SQL SERVER 2005 d'installer.
 
Le service SQLSERVER est démmaré, et j'ai bien configuré la couche réseau d'ORACLE pour la communication lient-serveur.
 
Merci de m'aider, à moins que ORACLE9i me permet de faire de l'analyse OLAP et du reporting ?
 
 
Merci beaucoup
 
 
 

mood
Publicité
Posté le 03-03-2006 à 21:55:19  profilanswer
 

n°1777752
GeGe585
Posté le 26-08-2008 à 15:22:03  profilanswer
 

Aucunes réponses ?  
 
Je profite pour uper ce sujet alors, car je susi sur le même problème.
En tout cas je sais que c'est possible, il faut installer le client oracle sur le même pc là où on utilise SQL SERVER, ensuite il faut configurer le client oracle pour qu'il se connecte à la BDD Oracle ( c'est là ou j'en suis actuellement ^^) et enfin se connecter au client grace au fournisseur OLEDB for oracle à partir de SQL Server...?
 
Corrigez moi si je me trompe svp...

n°1777996
moi23372
Posté le 26-08-2008 à 20:10:36  profilanswer
 

Exact.  
Configure ton client Oracle (TNSNAMES.ORA).  
 
Ensuite, installe sur le serveur, les pilotes OLEDB for ORACLE.  
 
Finalement, tu vas dans l'outil "Enterprise Manager" d'SQL SERVER 2005 et tu crées un object de type "Linked Server".  
Ce genre d'objet te permet de faire une connexion vers n'importe quel autre DB à partir du moment ou tu possèdes les pilotes OLEDB pour faire la connexion.  
 
Voila, bon courage, mais sache que cela peut devenir une vrai merde. Moi typiquement, mon serveur était un Windows Server 2003 64 Bits, et les pilotes OLEDB 64 bit à l'époque n'était qu'en BETA, ils étaient ultra buggé, certaines query passaient, d'autres pas du tout.  
 
HOPE this HELP.


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
n°1778025
GeGe585
Posté le 26-08-2008 à 21:18:31  profilanswer
 

Merci pour ces précisions ^^
Mon client oracle 10g est configurer, il se connecte normalement au serveur.
Mais j'ai une question :  
Il y a plusieurs fournisseurs disponibles sous SQL Server 2005 dont "Microsoft OLE DB Provider for Oracle" et un autre Fournisseur "Oracle pour OLE DB" qui est dispo quand on installe oracleXE, lequel entre ces deux est le meilleur ?

n°1778089
MagicBuzz
Posté le 27-08-2008 à 01:47:26  profilanswer
 

N'utilise JAMAIS le drivers fourni par Oracle. Oracle, il suffit de regarder leur SGBD pour se rendre compte qu'ils ne savent pas programmer. Le drivers de Microsoft est de loin plus stable et performant. Et en plus, il gère mieux les types BLOB/CLOB, que celui d'Oracle ne gère pour ainsi dire pas (c'est un comblre)

n°1778240
moi23372
Posté le 27-08-2008 à 13:08:05  profilanswer
 

MagicBuzz a écrit :

N'utilise JAMAIS le drivers fourni par Oracle. Oracle, il suffit de regarder leur SGBD pour se rendre compte qu'ils ne savent pas programmer. Le drivers de Microsoft est de loin plus stable et performant. Et en plus, il gère mieux les types BLOB/CLOB, que celui d'Oracle ne gère pour ainsi dire pas (c'est un comblre)


 
Je suis tout à fait d'accord avec toi.  
Récemment, on a trouver un énormement Bug dans les drivers JDBC JAVA pour Oracle. Et croyé moi, ce bug fait peur, très peur (après un close de la connexion sans Commit/Rollback, il est possible si la connexion est mise dans un pool de la récupérer avec les transactions qui sont toujours en pending malgré le close).


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
n°1778243
MagicBuzz
Posté le 27-08-2008 à 13:26:45  profilanswer
 

Moi j'ai commencé à découvrir les bugs avec la version 7.0.3, quand j'ai débuté.
 
Déjà, ça partait mal, les types CHAR et VARCHAR plantaient carrément le drivers.
 
Ensuite, BLOB/CLOB ne marchaient pas du tout.
 
RecordCount était généralement à -1, ou pire, à une valeur arbitraire qui n'avait rien à voir avec le nombre réel (genre le nombre de lignes lues dans une des tables utilisées pour une jointure)
 
Les recordsets dynamiques ne fonctionnaient pas du tout (c'est bien pratique les movenext() sans possibilité de faire demi-tour, mais ça devient lourd quand on ne peut même pas faire un movefirst()... je ne parle pas du move() tout court qui ne plantait pas mais... qui faisait vraiment pas ce qu'on lui demandais).
 
Depuis, tous ces bugs partent et reviennent d'une version à l'autre, d'autres sont ajoutés quelques uns corrigés partiellement... Mais y'a toujours un truc qui déconne.
 
Je ne compte pas le nombre de projets où j'ai été appelé en pompier parceque toute l'application déconnait à plein tube au moment d'une mise en prod... et le nombre de fois où le simple remplacement du drivers par celui de Microsoft résolvait l'intégralité des problèmes !
 
Bon, celui de Microsoft n'est pas toujours parfait, j'irai pas dire ça. Mais il est autrement plus fiable, le seul bug réel que j'ai jamais eu, c'est le recordcount qui ramène -1 et les blob/clob obligatoirement en dernière position dans un select. Sorti de ça, jamais eu le moindre problème avec.

n°1778288
GeGe585
Posté le 27-08-2008 à 14:23:10  profilanswer
 

Je vous avoue que beaucoup de vos termes m'échappent  :pt1cable:  
Mais j'ai au moins bien compris votre avis sur la question  
 

MagicBuzz a écrit :

N'utilise JAMAIS le drivers fourni par Oracle


 
Je vais donc écouter vos conseils et utiliser le driver fourni par microsoft  :jap:


Message édité par GeGe585 le 05-09-2008 à 14:42:29
n°1778321
GeGe585
Posté le 27-08-2008 à 15:07:38  profilanswer
 

J'ai une erreur sur SQL server... :

Code :
  1. Le fournisseur OLE DB 'MSDAORA' du serveur lié 'XXX' a retourné le message 'ORA-12170: TNS : délai de connexion dépassé


Quand j'ai eu ce message, je suis allé sur mon client oracle et j'ai tenter de me connecter, mais j'arrive plus du tout à me connecter à la BDD oracle :/ , il m'affiche le même code d'erreur
J'ai tenter un ping, tnsping et tout à l'air de fonctionner
Comment résolver ce problème ?


Message édité par GeGe585 le 27-08-2008 à 16:47:27
n°1778327
MagicBuzz
Posté le 27-08-2008 à 15:13:16  profilanswer
 

Ben là, c'est ton serveur Oracle qui déconne. Depuis un autre poste, t'arrive à te connecter avec le client ?
T'as bien vérifié que tu utilises bien le bon TNS ?

mood
Publicité
Posté le 27-08-2008 à 15:13:16  profilanswer
 

n°1778345
GeGe585
Posté le 27-08-2008 à 15:29:40  profilanswer
 

J'arrive à me connecter dessus depuis un autre poste ayant le client,  
J'utilise bien le bon TNS
Comme tu l'as supposer je pense que ça doit être du côté serveur que ça déconne, je vais voir le listener.ora tnsnames.ora sur le serveur, on verra bien

n°1778350
MagicBuzz
Posté le 27-08-2008 à 15:34:38  profilanswer
 

En tout cas, tant que ton client Oracle ne marche plus, ça pourra pas marcher avec SQL Server, puisqu'il passe par le client.
 
C'est étrange que ça ait pété d'un coup comme ça par contre, surtout que je vois pas quel rapport ça pourrait avoir.

n°1778353
MagicBuzz
Posté le 27-08-2008 à 15:36:49  profilanswer
 

je sais.
 
(peut-être)
 
mais je crois pas, ça explique pas le coup du client...
 
mais en gros, colle "tout le monde / contrôle total" sur ton fichier "tnsnames.ora"
 
du moins, avec IIS ça te sort une vieille erreur de la mort genre t'as pas de client oracle installé si il n'arrive pas à accéder à ce fichier, et c'est à cause d'un souci de privilèges pas assez élevés.
 
et vu que SQL Server ne tourne pas avec les droits de ta session, mais un compte restreint, y'a peut-être un souci du genre.
 
mais ça n'explique pas pourquoi ton client oracle ne marche plus tout d'un coup

n°1778368
GeGe585
Posté le 27-08-2008 à 15:51:05  profilanswer
 

Bon, je raconte le déroulement de tout ça :
J'ai installer mon client hier, je l'ai configuer et tout, et les requêtes marchaient nickel.
 
J'ai tenter un brève connection à partir De SQLServer hier soir mais ça ne marchait pas, ça me disait que le client n'était pas installé, j'ai donc redémarré le serveur SQL pour qu'il le détecte et comme j'étais en heure sup... je suis parti pendant son redémarrage, ce matin j'arrive je retente la connection sur SQL et ça m'affiche l'erreur que vous voyez un peu plus haut.
 
Mais là y a trop de choses à prendre en compte, je vais revérifier tout depuis le début calmement, posément.
 
Je vais quand même tester ta solution, je reposte dès que j'ai résolue le problème ^^


Message édité par GeGe585 le 27-08-2008 à 15:59:01
n°1778431
GeGe585
Posté le 27-08-2008 à 17:06:32  profilanswer
 

J'ai refait un "profil" sur mon client et cela passe même après un redémarrage, quand je réessaie de me connecter depuis sql server, j'ai cette erreur :

Code :
  1. Le fournisseur OLE DB 'MSDAORA' du serveur lié 'XXX' a retourné le message 'ORA-12154: TNS : l'identificateur de connexion indiqué n'a pas pu être résolu
  2. '.
  3. Msg 7303, Niveau 16, État 1, Ligne 1
  4. Impossible d'initialiser l'objet de la source de données du fournisseur OLE DB 'MSDAORA' du serveur lié 'XXX'.


n°1778443
MagicBuzz
Posté le 27-08-2008 à 17:15:07  profilanswer
 

Et avec SQL Plus, sur le même TNS t'arrives bien à te connecter ?
 
Si oui, alors essaie de coller un accès public contrôle total sur ton tnsnames.ora, on sait jamais.
 
Ensuite, mise à part une erreur dans la config du lien, je vois pas...
 
Le serveur Oracle, il est sous Windows ou pas ? A mon avis ça change rien, mais on sait jamais. Tente toujours avec les drivers fournis par Oracle, mais je doute que ça aille mieux

n°1778457
GeGe585
Posté le 27-08-2008 à 17:25:43  profilanswer
 

Avec SQL Plus, oui j'utilise le même TNS
 
Je viens de mettre l'accès total, et toujours la même erreur :/
 
Le serveur Oracle est sous Windows Server 2003...
 
Là je suis perdu, je ne pige plus rien ^^'
 
Sinon tnsnames.ora et listener.ora sevent à quoi exactement sur client/serveur ?
Je sais que le tns sert à gérer les connections mais j'aurai aimer avoir de détails stp.

n°1778463
MagicBuzz
Posté le 27-08-2008 à 17:31:00  profilanswer
 

aucune idée. chuis pas dba. y'a juste que quand t'y a pas accès, ça marche pas :D
 
en gros, tnsnames, c'est le fichier qui indique où se trouvent les bases de données sur le réseau, et le listner, aucune idée, je l'ai jamais édité.
 
tu peux poster des screens des propriété du partenaria que t'as fait ? parceque là sans plus de détails, à mon avis t'auras jamais de réponse

n°1778485
GeGe585
Posté le 27-08-2008 à 18:14:27  profilanswer
 

T'es pas dba ?! J'aurai mis ma main à couper que oui !! Je l'aurai bien perdu lol
 
En tout cas merci pour les précisions, quand à moi je sais que le listener contient le SID des différentes bases de données, ce SID qui nous permet de nous y connecter aux bases de données via le client.
 
Je posterai des screens plus tard en dernier recour, là je vais TOUT refaire, réinstallation du client etc et je ferai un ti bilan demain
 
Merci à tous :jap:

n°1778486
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 27-08-2008 à 18:20:53  profilanswer
 

GeGe585 a écrit :

Avec SQL Plus, oui j'utilise le même TNS
 
Je viens de mettre l'accès total, et toujours la même erreur :/
 
Le serveur Oracle est sous Windows Server 2003...
 
Là je suis perdu, je ne pige plus rien ^^'
 
Sinon tnsnames.ora et listener.ora sevent à quoi exactement sur client/serveur ?
Je sais que le tns sert à gérer les connections mais j'aurai aimer avoir de détails stp.


alors :
- le tnsnames.ora contient l'IP du serveur et le port utilisé, ainsi que le SID de la base sur lequel le client doit se connecter. autant te dire que si ce fichier est mal configuré, ce n'est même pas la peine de continuer
- le listener.ora, situé uniquement sur le serveur, contient le port d'écoute, l'IP du serveur, le port utilisé pour l'écoute et le protocole utilisé.
 
1ere vérif à effectuer : s'assurer que les infos concordent entre ces 2 fichiers


---------------
J'ai un string dans l'array (Paris Hilton)
n°1779379
GeGe585
Posté le 28-08-2008 à 18:32:50  profilanswer
 

Bon ça marche !!
Le problème résidait dans le tnsname...
 
Sachant que le serveur est sous oracle 9I et que par défault ça gère le service_name, lorsque que j'ai crée mon profil sur oracle client j'ai utiliser le SERVICE_NAME pour faire la relation avec la BBD oracle mais en fait en y regardant bien dans le listenr du serveur il ont utiliser le SID.
J'ai donc recréer un profil en prenant le soin de faire la relation avec le SID.
Déja ça c'est un premier point.
 
L'autre soucis était que sous SQL Server dans la chaîne du founisseur dans les propriété du serveur lié, il faut y mettre le nom du profil client qui se connecte à la base Oracle ( je mettais rien... d'où l'erreur un peu plus haut )
 
 
Troisièmement dans le listener j'ai rajouter une ligne avec l'adresse ip du serveur et non le localhost.
 
Et enfin j'ai modifié la base de registre pour le MDAC (qui gère les connection de MS SQL vers oracle):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI
Qui était comme ça par défault
 
"OracleXaLib"="oraclient8.dll"  
"OracleSqlLib"="orasql8.dll"  
"OracleOciLib"="oci.dll"
 
J'ai du remplacer "oraclient8.dll" par "oraclient10.dll" etc.. car j'utilise oracleclient 10.2
 
Mais entre tout ça j'ai n'ai fait aucun tests ^^'
 
Voilà ces soucis m'ont donnés une bonne expérience quand même, le plaisir d'être sur avec une communauté qui aide et tout c'est sympa ^^
Merci encore d'avoir pris la peine de vous penchez sur le problème.


Message édité par GeGe585 le 28-08-2008 à 18:49:09
n°1779385
MagicBuzz
Posté le 28-08-2008 à 18:39:38  profilanswer
 

bonne nouvelle :jap:

n°1779387
GeGe585
Posté le 28-08-2008 à 18:46:17  profilanswer
 

Merci encore, ce fut un plaisir :D

n°1780161
fultoyou
vivre c'est apprendre
Posté le 29-08-2008 à 17:52:27  profilanswer
 

Bien moi je suis un débutant en oracle mais pas en Base de Données. Je veux utiliser l'Oracle 9i. J'ai le CD et je voudrais l'installer et demander votre aide en cas de difficulté. Ma préoccupation est la suivante:j'ai trois dossiers et je sais pas lequel choisir:ClientOracle9i,Oracle9i,Oracle 10G XE.
Voilà indiquer moi ce que je dois faire? Merci

n°1780174
MagicBuzz
Posté le 29-08-2008 à 18:55:33  profilanswer
 

1/ Tout dépend de ton utilisation
2/ Tout dépend aussi de ta licence
 
Client : Tu as déjà un serveur installé, et ça ne va donc installer que le client pour s'y connecter. Ceci ne nécessite pas de licence particulière*
Oracle 9i : Il s'agit de la version "lourde" d'Oracle. Par contre c'est une ancienne version. Si tu as la licence, alors c'est lui qu'il faut installer, sinon, va sur le site d'Oracle télécharger la version 10gR3 ou une 11g*.
Oracle 10g XE : Il s'agit de la version "light" gratuite, comme SQL Server Express. C'est la dernière en date si je ne m'abuse. Tu peux l'utiliser sans problème et librement, les restrictions ont peu de chances de te concerner même si tu te lances dans des devs assez lourds.
 
* : Tous les produits d'Oracle (sans AUCUNE exception) sont librement téléchargeables sur le site d'Oracle. T'as juste à créer un compte et dire qui tu es, et ce que tu comptes en faire. Ils restent cependant soumis à licence payante (sauf les XE) pour une utilisation de production. Mais pour un environnement de test, dev ou formation (autonome ou non) ils sont gratuits. Donc autant profiter des dernières versions.
 
A noter toutefois deux restrictions importantes qui s'appliquent quelle que soit la version que tu utilises : t'as pas le droit de publier le moindre benchmark comparatif sans autorisation et validation de l'éditeur. T'as pas le droit de t'en servir pour dirriger des missiles sur le Pentagone ou armement nucléaire en dehors du territoire américain (écrit en toute lettres dans la CGU ;))


Message édité par MagicBuzz le 29-08-2008 à 18:58:55
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Se connecter à une Base ORACLE avec SQL SERVER 2005

 

Sujets relatifs
[Résolu] Transfert de base de donnéeRecherche aide pour Server Mondrian
[.NET & COM] Gérer Excel à partir de .NET 2005[SQL] Table temporaire
requete SQL avec VBrequete "insert" dans microsoft sql server avec PHP
.NET 2005 Winforms - Comment activer le Style XP ?importer un base access dans SQL serveur 2005 express
Plus de sujets relatifs à : Se connecter à une Base ORACLE avec SQL SERVER 2005


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR