Accéder à une base Oracle avec SAS/ACCESS to ODBC

Cet article en deux mots :

Configurez efficacement votre environnement Linux pour connecter vos instances SAS à Oracle. De l'installation d'unixODBC au paramétrage critique des variables d'environnement comme LD_LIBRARY_PATH et ODBCINI, ce guide technique vous accompagne pas à pas pour garantir une connectivité stable et performante.

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 :
1
2
3
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 :
1
./configure --prefix=/usr --sysconfdir=/etc/unixODBC
Troisième étape, compilez le package avec la commande suivante :
1
make install
Cette étape peut prendre plusieurs minutes.

Etape 2 - Installation du client Oracle et du pilote ODBC

oracle_pilote_odbc_sas_94Pour 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 :
1
yum install libaio
  libsqora.so.12.1-sas-oracle

 Etape 3 - Configuration des variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. d’environnement

L'étape 3 consiste à positionner les variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. d’environnements.  Pour que ces variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. soient reconnues dans votre sessionInstance de connexion active entre un client et le serveur CAS (Cloud Analytic Services), isolant les ressources, les bibliothèques et les traitements d'un utilisateur au sein de SAS Viya. 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 variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage. à ajouter :
  • LD_LIBRARY_PATH
Vous devez compléter la variable d'environnement LD_LIBRARY_PATH pour y faire figurer le chemin d'accès au pilote ODBC :
1
export LD_LIBRARY_PATH=/home/sas/instantclient_12_2:$LD_LIBRARY_PATH
  •  ORACLE_HOME
1
export ORACLE_HOME=/home/sas/instantclient_12_2/
  • ODBCINI
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 :
1
export ODBCINI=/home/sas/SASHOME/ODBC/odbc.ini
  • ODBCINSTINI
Le fichier odbcinst.ini définit des pilotes ODBC :
1
export ODBCINSTINI=/home/sas/SASHOME/ODBC/odbcinst.ini
  • TNS_ADMIN
Emplacement du fichier tnsnames.ora. L'emplacement par défaut est le répertoire répertoire_Oracle \network\admin
1
export TNS_ADMIN=/home/sas/instantclient_12_2/
A noter, qu'il peut être aussi nécessaire de positionner d'autres variablesColonnes d'une table SAS contenant des données spécifiques (numériques ou caractères). Elles possèdent des attributs comme le nom, le type, la longueur, l'étiquette et le format d'affichage., 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    

Nicolas Housset

Passionné d'informatique, je suis Consultant et expert technique SAS VIYA, également co-fondateur de la société Flexcelite. Spécialisé dans les technologies SAS (Viya, 9.4) et les infrastructures associées (Linux, Hadoop, Azure), ce blog est mon espace pour partager mes mémos techniques et retours d'expérience.