Archives de catégorie Divers

Installer un client ODBC pour Oracle sous Windows

L’installation d’un client ODBC pour Oracle s’avère bien souvent assez fastidieuse. Plusieurs raisons à cela: tout d’abord, il n’y a pas d’installeur réalisant cette opération de manière automatique, ensuite (c’est une conséquence du premier point) il est nécessaire de réaliser certaines tâches de configuration manuellement et finalement certains fichiers indispensables peuvent ne pas être présents.

Dans l’exemple qui suivra, nous configurerons un client ODBC pour un OS Windows 32bits (Windows 2000, XP, Vista, 7, 8 ou 8.1).

La toute première étape consistera à télécharger les fichiers nécessaires sur le site d’Oracle dans la page générale Instant Client Download. Nous sélectionnerons le lien permettant d’accéder aux programmes pour Windows 32bits comme indiqué ci-dessous.

Instant Client Download

A l’heure d’écrire ce texte, Oracle est en version 11, nous téléchargerons donc les fichiers les plus récents correspondant à cette version.

Afin de ne pas nous éloigner des prescriptions d’Oracle, nous allons décompresser les deux fichiers venant d’être téléchargés dans un répertoire [c:\Oracle]. Les fichiers ZIP contenant chacun un répertoire de base [.\instantclient_11_2] nous aurons donc au final nos fichiers à l’adresse [c:\Oracle\instantclient_11_2].

Lorsque cette première étape est franchie, il suffit (en principe) d’exécuter le programme ODBC_INSTALL.EXE se trouvant dans le répertoire indiqué ci-dessus.

ODBC Install

L’étape suivante va consister à configurer le client afin qu’il puisse fonctionner. Deux choses principales à réaliser :

  • Configurer les variables systèmes nécessaires au fonctionnement du client Oracle;
  • Configurer la connexion à la base de données.

La configuration des variables systèmes.

Pour être propre, nous conseillons de configurer 3 variables:

  • ORACLE_PATH à laquelle nous affecterons la valeur « c:\Oracle\instantclient_11_2« ;
  • TNS_ADMIN à laquelle nous affecterons la valeur « %ORACLE_PATH%« ;
  • PATH que nous modifierons afin d’y ajouter « ;%ORACLE_PATH% » en fin de chaine. Attention à ne pas oublier le « ; », il agira comme séparateur dans la liste de chemin.

Pour modifier les variables systèmes, cliquer sur le bouton « Start » de Windows, et ensuite faites un clic-droit sur « Ordinateur ». Dans le menu apparaissant, cliquer sur « Propriétés« .

Start Windows

Propriétés

Dans l’écran apparaissant, cliquer sur « Paramètres système avancés »…

Informations Système Générales

…et ensuite sur le bouton « Variables d’environnement… » :

Propriétés Systèmes

Deux listes de variables se présentent alors à vous : la première contient des variables locales à l’utilisateur, la seconde des variables globales pour tous les utilisateurs de la machine. Cette seconde liste pourrait ne pas être accessible si vous n’avez pas des droits d’administration. Le fonctionnement des deux listes est par contre identique.

Pour créer la variable ORACLE_PATH, procédez comme suit:

Après l’action numéro (4), la variable sera alors présente dans la liste.

Variables Systèmes

Procédez de la même manière pour créer la variable TNS_ADMIN.

Nouvelle Variable Système

…et pour terminer ajouter le chemin d’accès au client Oracle contenu de la variable PATH. Celle-ci étant déjà existante, il suffit de la rechercher dans la liste, de la sélectionner et de cliquer sur le bouton [Modifier].

Variables d'environnement

Il reste une dernière étape pour que le client soit fonctionnel et puisse enfin accéder aux données présentes dans le serveur : créer un TNS (Transparent Network Substrate…ce qui dit tout!) En gros, un TNS est simplement une petite configuration permettant de dire au client comment accéder au(x) serveur(s)…et finalement ce n’est pas très compliqué.

Le fichier « TNSNAMES.ORA » contenant le ou les TNS doit impérativement se trouver dans le répertoire mentionné dans la variable TNS_ADMIN. Il s’agit d’un fichier texte pouvant facilement être édité avec « Notepad ».

En voici un exemple :

tnsnames.ora

  • ORCLVM : est un nom libre (mais unique) nommant le TNS. On le retrouvera par exemple lors de la configuration du DSN ODBC.
  • PROTOCOL = TCP : indique le type de protocole utilisé pour le dialogue client/serveur. Généralement il s’agit de TCP.
  • HOST : Adresse du serveur sur le réseau.
  • PORT : Port sur lequel la base de données « écoute » les requêtes provenant des clients. L’application réalisant cette tâche côté serveur s’appelle le LISTENER.
  • SERVICE_NAME : Nom du service de la base de données installées sur le serveur.

En principe, si vous vous trouver dans le meilleur des mondes et que les étapes ci-dessus ont été réalisées correctement vous devriez avoir la possibilité de créer un DSN ODBC et le tester avec succès. Il peut néanmoins y avoir des soucis.

ORA-12154

Une erreur s’est produite dans la configuration des variables ORACLE_PATH ou TNS_ADMIN. Cela conduit généralement à une erreur ORA-12154 :

Testing connection

Il s’agira dans ce cas de vérifier la valeur des variables ORACLE_PATH et TNS_ADMIN et d’éventuellement les corriger. Il est possible aussi qu’un redémarrage de la machine client résolve le problème.

Les routines d’installation du pilote ODBC Oracle instantclient_11_2 n’ont pu être chargées en raison de l’erreur système code 126.

Administrateur ODBC Microsoft

Classiquement, il s’agit ici d’une erreur de dépendance d’une DLL. En général, cela se corrige assez facilement en recopiant une ou deux DLL dans le répertoire [c:\Oracle\instantclient_11_2]…mais encore faut-il découvrir quelles sont ces DLL… Pour cela vous pouvez utiliser l’outil Dependency Walker téléchargeable gratuitement.

Depends

 

Lors de l’exécution de cet outil, il est possible de charger une DLL et si des dépendances sont introuvables, l’outil les mets en évidence. Dans le cas du client Oracle, deux DLL sont a vérifier en priorité: il s’agit de SQORA32.DLL et SQORAS32.DLL.

Dependency Walker

Dans le cas qui nous occupe, le runtime de Visual Studio 2003 n’est pas présent sur la machine cliente. Le composant ne peut donc être trouvé. De nombreux sites internet propose de télécharger ce type de fichier, une simple recherche permettra de le trouver. Copiez-le ensuite dans le répertoire [c:\Oracle\instantclient_11_2]. Si l’erreur persiste, il s’agit probablement d’une autre dépendance manquante. Revérifier les deux DLL énoncées ci-dessus à l’aide de Dependency Walker et répéter l’opération jusqu’à ce que cela fonctionne.

NB : Les solutions ci-dessus ne permettent peut-être pas de corriger toutes les erreurs d’installation du client ODBC Oracle mais d’en corriger les plus communes.