Etape 1 - Installation de unixODBC
Pour utiliser le pilote ODBC Oracle dans un environnement Linux, il est nécessaire d'installer un gestionnaire de pilotes approprié.
Dans cet exemple, je vais installer unixODBC
Cette première étape explique comment installer le gestionnaire de pilotes unixODBC sur un système Linux. Bien-sûr le nom du fichier peut être différent si vous téléchargez une version plus récente. Si c'est le cas adaptez les noms de fichier et de répertoire d'étape ci-après en fonction du nom du fichier téléchargé. Le commandes Linux présentées peuvent variés en fonction du système ou des répertoires, aussi prenez connaissance des informations des fichiers
README et
INSTALL, inclus dans le package téléchargé, pour identifier les étapes spécifiques à votre pilote.
L'installation d'unixODBC nécessitant un accès en écriture à la racine du système de fichiers pour la création des répertoires d'installation, connectez-vous en tant que root (ou utiliser sudo) pour accéder ainsi aux répertoires d'installation.
La première étape consiste à télécharger le fichier du gestionnaire de pilotes :
wget ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.5.tar.gz
gunzip unixODBC-2.3.5.tar.gz
tar xvf unixODBC-2.3.5.tar
Maintenant, il vous faut exécuter la commande ci-dessous pour configurer le logiciel et définir le répertoire d'installation :
./configure --prefix=/usr --sysconfdir=/etc/unixODBC
Troisième étape, compilez le package avec la commande suivante :
make install
Cette étape peut prendre plusieurs minutes.
Etape 2 - Installation du client Oracle et du pilote ODBC

Pour télécharger Oracle Instant Client, rendez-vous sur le site d'Oracle :
Instant Client Downloads for Linux x86-64
Les packages a télécharger sont les suivants :
- instantclient-basic-linux.x64-12.2.0.1.0
Instant Client Package - Basic: All files required to run OCI, OCCI, and JDBC-OCI applications
- instantclient-basiclite-linux.x64-12.2.0.1.0
Instant Client Package - Basic Light: Smaller version of the Basic package, with only English error messages and Unicode, ASCII, and Western European character set support
- instantclient-sqlplus-linux.x64-12.2.0.1.0
Instant Client Package - SQL*Plus: Additional libraries and executable for running SQL*Plus with Instant Client
- instantclient-odbc-linux.x64-12.2.0.1.0-2
Instant Client Package - ODBC Updated 9/20/2017: Additional libraries for enabling ODBC applications
https://tinyurl.com/oraodbc12-2-0-1
Je vous invite également à vérifier la présence des librairies libaio (Kernel Asynchronous I/O) utilisé par le driver ODBC.
Si elles ne sont pas présente sur votre système :
yum install libaio
Etape 3 - Configuration des variables d’environnement
L'étape 3 consiste à positionner les variables d’environnements. Pour que ces variables soient reconnues dans votre session SAS, vous devez les ajouter dans le fichier sasenv_local. Vous trouverez le fichier sasenv_local dans le repertoire SASFoundation/9.4/bin/.
Voici les variables à ajouter :
Vous devez compléter la variable d'environnement LD_LIBRARY_PATH pour y faire figurer le chemin d'accès au pilote ODBC :
export LD_LIBRARY_PATH=/home/sas/instantclient_12_2:$LD_LIBRARY_PATH
export ORACLE_HOME=/home/sas/instantclient_12_2/
Cette variable indique le chemin d'accès au fichier odbc.ini. Le fichier
odbc.ini fournit des informations relatives à la connexion (dsn) à toutes les bases de données. que vous utilisez :
export ODBCINI=/home/sas/SASHOME/ODBC/odbc.ini
Le fichier odbcinst.ini définit des pilotes ODBC :
export ODBCINSTINI=/home/sas/SASHOME/ODBC/odbcinst.ini
Emplacement du fichier tnsnames.ora. L'emplacement par défaut est le répertoire répertoire_Oracle \
network\admin
export TNS_ADMIN=/home/sas/instantclient_12_2/
A noter, qu'il peut être aussi nécessaire de positionner d'autres variables, comme NLS_LANG
Test LD_LIBRARY_PATH
Il est possible de valider la bonne configuration de la variable d'envrionnement LD_LIBRARY_PATH. Après avoir "sourcé" le fichier sasenv_local, exécutez la commande ci-dessous :
/mnt/install/SAS/SASHOME/SASFoundation/9.4/sasexe/
ldd sasodb
check :
libodbc.so => /lib/libodbc.so (0x00007f3c78212000)
cd $ORACLE_HOME
ldd libsqora.so.12.1
check:
libclntsh.so.12.1 => /home/sas/instantclient_12_2/libclntsh.so.12.1 (0x00007ff20bfb5000)
libclntshcore.so.12.1 => /home/sas/instantclient_12_2/libclntshcore.so.12.1 (0x00007ff20b9e7000)
dltest /mnt/install/SAS/vertica-client/opt/vertica/lib64/libverticaodbc.so
SUCCESS: Loaded /mnt/install/SAS/vertica-client/opt/vertica/lib64/libverticaodbc.so
Etape 4 - définition du tnsname.ora
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = franih-ora12.ts.sashq-r.openstack.sas.com)(PORT = 1521))
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = franih-ora12.ts.sashq-r.openstack.sas.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
Etape 5
odbc.ini
[orcl]
Description=Connexion ODBC sur la base franih-ora12.ts.sashq-r.openstack.sas.com
Driver=/home/sas/instantclient_12_2/libsqora.so.12.1
DSN=ORCL
ServerName=ORCL
Trace=yes
TraceFile=/tmp/odbc_oracle.log
Etape 5
Test sqlplus
instantclient_12_2/sqlplus sas/Orion123@orcl
Etape 6
Test isql
Etape 7
Variable d’env dans sasenv_local
Etape 8
Test dans SAS