Comment installer les pilotes Oracle OLE pour une utilisation dans SQL Server 2008 R2 x64

10

Conformément à la procédure standard que nous utilisons depuis des années pour les versions précédentes d'Oracle et de SQL Server, j'ai installé le dernier package ODAC d'Oracle, qui inclut le pilote Oracle OLE sur nos nouveaux nœuds SQL Server 2008 R2 x64. J'ai effectué le redémarrage du système recommandé, mais OraOLEDB.Oracle ne s'affiche pas dans le nœud Linked Servers \ Providers dans SSMS. La seule différence entre cette installation et les installations précédentes de SQL Server est que j'utilise maintenant SQL Server x64 (sous Windows 2008 R2). Cela devrait-il faire une différence?

Notez que je peux me connecter directement aux serveurs Oracle à l'aide de SQL * Plus à partir des nœuds SQL Server. La seule chose qui me manque, c'est ce fournisseur. Quelqu'un sait ce qui me manque? Il existe de nombreux messages sur le Web, mais il semble y avoir beaucoup de confusion et des liens obsolètes vers la page de téléchargement d'Oracle.

La SEULE chose que je dois être en mesure de faire est de créer un serveur lié à Oracle et d'exécuter certaines requêtes sur celui-ci. Je n'ai rien à faire via Visual Studio.

Un gars
la source
J'ai une réponse plus simple sur la façon de procéder, mais cela implique des pilotes Oracle 12 et SQL Server 2012. Dois-je ajouter une réponse à cette question ou poser une nouvelle question?
Baodad

Réponses:

15

Après des heures de recherche, j'ai réussi à concocter quelques instructions de travail pour Oracle 11g R2. En fin de compte, vous aurez probablement besoin que les clients 32 et 64 bits soient installés pour que les choses fonctionnent dans BIDS / Visual Studio / SSMS. J'ai peut-être installé plus de composants Oracle que je n'en avais besoin, mais voici ce qui a fonctionné pour moi:

  1. Téléchargez les clients 32 et 64 bits depuis http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html (cliquez sur "tout voir" pour voir les différentes versions, sinon, vous allez télécharger le programme Oracle complet. Vos téléchargements doivent représenter environ 600 mégaoctets chacun)
  2. Exécutez l'installation 32 bits sur le serveur SQL. Sélectionnez "Personnalisé"
  3. Pour Oracle Base, entrez "C: \ Oracle"
  4. Pour "Emplacement du logiciel", passez à C: \ Oracle \ product \ 11.2.0 \ client_ 32
  5. Choisissez les composants suivants:
  6. SQL * Plus
  7. Interface d'appel Oracle (OCI)
  8. Oracle Net
  9. Oracle Services pour Microsoft Transaction Server
  10. Assistant d'administration Oracle pour Windows
  11. Fournisseur Oracle pour OLE DB
  12. Fournisseur de données Oracle pour .NET
  13. Fournisseurs Oracle pour ASP.NET
  14. Répétez les étapes ci-dessus avec le programme d'installation 64 bits. TOUTEFOIS, changez "Emplacement du logiciel" en C: \ Oracle \ product \ 11.2.0 \ client_ 64
  15. J'ai eu une erreur de mémoire à ce stade, mais j'ai choisi de l'ignorer car je sais qu'il y en a assez
  16. Ignorez l'erreur "OracleMTSRecoveryService existe déjà"

Maintenant que l'installation est terminée, il suffit de modifier quelques éléments.

  1. Apportez des modifications de registre à HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSDTC \ MTxOCI
  2. OracleOciLib doit être oci.dll
  3. OracleSqlLib doit être orasql11.dll
  4. OracleXaLib doit être oraclient11.dll
  5. Apportez les mêmes modifications de registre à HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ MSDTC \ MTxOCI
  6. Créez ou copiez un nouveau tnsnames.ora dans C: \ Oracle \ product \ 11.2.0 \ client_ 32 \ network \ admin
  7. Créez ou copiez un nouveau tnsnames.ora dans C: \ Oracle \ product \ 11.2.0 \ client_ 64 \ network \ admin
  8. Redémarrez!
  9. Vous devriez maintenant voir OraOLEDB.Oracle en tant que fournisseur sous Linked Servers \ Providers dans SSMS
  10. Cliquez avec le bouton droit sur ce fournisseur, puis sur Propriétés, puis cochez la case "Autoriser le traitement"
  11. Vous pouvez maintenant créer un serveur lié via l'interface graphique ou T-SQL

Bonne chance!

Un gars
la source
1
J'ai eu le même problème (Sql Server 2008 R2 64x se connectant à un Oracle 8) et l'ai résolu en suivant vos instructions. Heureusement, je viens d'installer le client 64 bits. Merci!
santiiiii
Je l'ai installé sans l'assistant d'administration SQL * Plus et sans les modifications de registre sur une machine x64 et cela a fonctionné.
Gabriel Guimarães
Salut @SomeGuy puis-je utiliser vos instructions avec 12c aussi merci
Willie Cheng
Attention à la taille du téléchargement - 3,1 Go pour la dernière version d'Oracle Client pour Windows x64 19C.
Mike
0

Oui, l'architecture du système fait beaucoup de différence.

Vous devez installer le logiciel client Oracle x64 pour Windows.

Massimo
la source
Je n'arrive pas à trouver des composants x64 pour 11g sur le site Oracle sans télécharger l'intégralité du client x64 qui fait 2 Go. L'ODAC ne semble monter que jusqu'à 10g. Quelqu'un d'autre le remarque-t-il? Je vais essayer le client complet pour l'instant, mais je n'ai jamais eu à le faire auparavant. Peut-être qu'ils publieront ODAC 11g pour x64 à l'avenir.
SomeGuy
Le client fait environ 615 Mo, le package de 2 Go est le produit complet; voir ici: oracle.com/technetwork/database/enterprise-edition/downloads/… .
Massimo
2
@SomeGuy en fait, il y a ODAC pour 11g, vous ne pouvez pas le trouver parce que le site Web Oracle est un gâchis.
Gabriel Guimarães