Professional Documents
Culture Documents
Par l’intermédiaire du module SAS/ACCESS Interface to ODBC, SAS permet d'utiliser la norme
ODBC générique pour l'accès aux sources de données extérieures. Les avantages de la norme ODBC
ne sont plus à démontrer. De nombreux fournisseurs de bases de données mettent des pilotes à la
disposition des utilisateurs pour la connexion à leurs bases de données à partir de tous les logiciels
permettant une connexion vers une source ODBC. SAS/ACCESS Interface to ODBC offre la
possibilité d'utiliser ces pilotes ODBC pour se connecter aux données à partir de SAS. Ainsi, les
développeurs SAS n'ont pas besoin de modifier leurs programmes pour leur permettre d’accéder à
un serveur de données spécifique. Il suffit que le pilote propre à la base de données soit correctement
configuré.
Cet article est une présentation de la norme ODBC, du module SAS/ACCESS Interface to ODBC,
de son installation et de son utilisation dans SAS. Je vous présente également des astuces, les
réponses aux questions les plus souvent posées au support SAS France ainsi que les solutions aux
problèmes fréquemment rencontrés.
Cet article est écrit comme un document dans lequel vous pouvez venir piocher des informations,
astuces et tutoriaux dans le but de vous familiariser et de vous accompagner au quotidien dans
l’utilisation d’ODBC.
Je ne pouvais pas terminer cette introduction sans vous rappeler que SAS utilise également cette
norme ODBC pour permettre à des applications tierces d’accéder et de lire des données SAS.
Cette partie sera abordée dans un prochain article.
ODBC (Open DataBase Connectivity) est une interface de programmation (API) universelle,
indépendante de la source de données. Créé au début des années 90 par Microsoft, ODBC a tout de
suite eu un objectif très ambitieux : permettre aux utilisateurs d'accéder facilement à des données
de toute base de données relationnelle en utilisant une interface commune. Les applications utilisent
ainsi les mêmes fonctions de l'API quelle que soit la source de donnée ciblée. Dans ce cas, le pilote
se charge de mener à bien l'action demandée, en fonction du type de source de données.
Dès sa conception, ODBC a été destiné à devenir la norme pour l'accès universel aux données.
Il est aussi disponible sur les systèmes d’exploitation Unix. Beaucoup de SGBD adhèrent à ce
standard, permettant à ses utilisateurs d'accéder aux données créées par d'autres logiciels.
2. SAS ET ODBC
Exemple : un utilisateur SAS veut pouvoir accéder, depuis le Système SAS, à des données SQL
Server. Il lui faut le un driver ODBC SQL Server et le module SAS/ACCESS Interface to ODBC.
Dans le deuxième cas, le Système SAS est le serveur de données. L'utilisateur non SAS veut accéder
à des données SAS. Il doit avoir à disposition le driver ODBC SAS (fourni par SAS) et bien-sûr une
application cliente adhérant au standard ODBC.
Exemple : un utilisateur MS-EXCEL veut pouvoir accéder, depuis MS-QUERY, à des données SAS. Il
lui faut le driver ODBC SAS et bien-sûr un Système SAS quelque part sur la même machine ou
ailleurs sur un réseau.
Une source de données ODBC doit être préalablement configurée à l'aide d'un pilote ODBC tiers.
Cette source doit pouvoir être validée par une application autre que le Système SAS, c'est-à-dire
testée par un autre logiciel comme par exemple MS-QUERY. Cette simple manipulation évite bien
des soucis, et permet de simplifier la chaîne d’éléments présents (i.e. on vérifie d’abord que l’accès
fonctionne sans SAS avant de rajouter la couche SAS).
Exemple : un utilisateur SAS veut pouvoir accéder, depuis le Système SAS, à des données MySQL.
Il a configuré une source de données ODBC et veut désormais requêter cette source de données
depuis le Système SAS.
Avant cela, il faut valider l'accès à cette source de données. Si cela fonctionne, on peut alors passer
au Système SAS. Si cela ne fonctionne pas, l'utilisateur doit voir avec son support informatique pour
détecter l'origine du problème.
Une fois la source testée et validée dans un monde non SAS, on peut tenter d'y accéder depuis le
Système SAS.
L'ensemble des paramètres de connexion se résume à un nom : celui que l'on donne à une source
de données (DSN en anglais pour Data Source Name).
L’application. Le programme qui utilise l’API ODBC, soumet les requêtes SQL et lit les
résultats. Dans le cas de l’utilisation du module SAS/ACCESS to ODBC, SAS est l’application.
Le pilote (ou driver) ODBC. Le pilote ODBC soumet les requêtes SQL à la source de données
et retourne les résultats à l’application. Le pilote adapte la syntaxe de la demande afin de se
conformer à la syntaxe requise par la source de données. Vous avez donc besoin d'un pilote
qui communique avec le serveur où sont stockées les données auxquelles vous souhaitez
accéder. Pour faire simple, si vos données sont stockées sur une base MongoDB, vous avez
besoin d’un pilote MongoDB. De nombreuses sociétés créent et fournissent des drivers ODBC.
Les fournisseurs de base de données, comme Oracle ou IBM, fournissent leurs propres pilotes
ODBC (gratuitement ou pas). Des sociétés sont également spécialisées dans le
développement de pilotes ODBC, comme la société Datadirect (il y en a d’autres).
Le gestionnaires ODBC. Ce programme charge en mémoire les pilotes ODBC afin qu’ils puissent être
accessibles par l’application utilisant l’API.
Les sources de données. Si vous n’avez pas de sources de données, déployer une solution
ODBC est inutile. Oracle, Teradata, SalesForce.com, Twitter, Microsoft SQL Server,
MongoDB, HBase, ou encore Google BigQuery sont des exemples de sources de données. Ce
ne sont que quelques exemples, il y a en effet beaucoup de sources de données qui peuvent
être traitées en utilisant ODBC. Dans les faits, SAS peut accéder aux données de n’importe
quelle base de données possédant un pilote ODBC qui répond à la norme ODBC. Cette
fonctionnalité permet à l'interface SAS/ACCESS pour ODBC d’être très populaire auprès des
utilisateurs de SAS.
La première étape est l’installation du gestionnaire de pilotes/drivers ODBC (ODBC Driver Manager).
Il permet de gérer l'interaction entre l'application cliente et le(s) driver(s) ODBC. Il est disponible
par défaut sur Windows. Sur Unix, il faut contacter le fournisseur de la base de données ou un
fournisseur tiers (comme par exemple Datadirect / Easysoft ou unixODBC) pour récupérer les binaires
et l’installer sur la machine où SAS est installé.
Concernant UnixODBC, SAS 9.4 requiert UnixODBC version 2.3.2 au minimum. La documentation
officielle précise également les méthodes ODBC utilisées par SAS afin de vous assurer que le
gestionnaire et le pilote que vous utilisez fonctionnera dans les meilleures conditions.
Ensuite, il faut aussi récupérer les librairies du pilote ODBC du SGBD et l’installer sur la même
machine. Il est préférable d'utiliser les pilotes ODBC développé par fournisseurs de pilotes ODBC
tels que Easysoft ou DataDirect de Progress Software. Ceux-ci sont généralement plus fiables et
mieux pris en charge que leur équivalent gratuit.
3.4. Est-ce que les pilotes ODBC sont validés par SAS ?
Au moment de choisir le pilote ODBC pour vous connecter à votre base de données via SAS/ACCESS
Interface to ODBC, vous pouvez, de façon tout à fait légitime, vous poser la question si le pilote
choisi a été testé avec SAS/ACCESS to ODBC.
Par exemple, vous allez connecter SAS à SAP HANA et voulez savoir si cette « association » a été
testée par les équipes R&D de SAS.
Notez d’abord que, dans ce cas présent, SAS fournit un moteur SAS/ACCESS spécifique pour SAP
HANA nommé SAS/ACCESS to SAP HANA. C’est la même chose avec Oracle, Sybase…
Mais qu’en est-il avec ODBC puisque le moteur SAS/ACCESS Interface to ODBC est un moteur
générique ?
Dans notre cas, nous souhaitons savoir si la R&D a testé le pilote ODBC SAP HANA.
Démarrons par cette notion de « supporté ». Concernant le support de tel ou tel pilote ODBC, la
réponse est simple :
« Supporté » ne signifie pas qu’il a été prouvé que le pilote fonctionne avec SAS. Cela signifie que
le support technique essaiera de vous aider, en cas de problème, à faire fonctionner la connexion
entre ce pilote et SAS.
Maintenant, est-ce que notre pilote ODBC SAP HANA a été « testé » par la R&D ?
La R&D ou le Support Clients SAS n’a pas testé tous les pilotes ODBC disponible sur le marché. Le
plus important est que votre pilote ODBC soit compatible avec la norme ODBC 3.5.
La question risque de se poser au moment de votre installation. Dois-je utiliser un pilote (driver) 32
ou 64 bits ? La réponse est simple :
Pensez également que SAS en 64 bits nécessite un ODBC driver manager et un ODBC driver compilé
en 64 bits (http://support.sas.com/kb/15/615.html)
Aussi, si vous utilisez SAS/ACCESS Interface to ODBC en version 64 bits, vous ne pouvez pas accéder
à des drivers ODBC 32 bits. À ce jour, certains fournisseurs offrent deux pilotes ODBC 32 bits et 64
bits pour leurs sources de données (par exemple, Oracle, Sybase, Teradata, et Microsoft SQL Server).
A noter également que votre base de données peut-être en 32 ou 64 bits, mais cela n’a pas
d’importance. Seule la version du pilote utilisé compte.
Cependant, vous pourriez trouver des pilotes ODBC uniquement en 32 bits. C’est le cas, par exemple,
pour les sources de données Microsoft Office tels qu’ Excel et Access.
(http://support.sas.com/kb/38/779.html)
A noter également, une version 64 bits du système d'exploitation Microsoft Windows inclut les
versions suivantes de l'outil administrateur de sources de données Microsoft ODBC Open Database
Connectivity (Odbcad32.exe) :
Point d’attention : l'administrateur ODBC affiche les deux versions 32 bits et 64bits des sources de
données utilisateur DSN dans une version 64 bits de Windows (http://support.microsoft.com/fr-
fr/kb/942976/fr). La version 32 bits de l'outil Administrateur ODBC affiche les sources de données
Les copies d’écran suivantes présentent les principaux écrans affichés lorsque vous souhaitez ajouter
le module SAS/ACCESS Interface to ODBC à une installation SAS existante :
Dans SAS Deployment Wizard, choisissez
“Installer le logiciel SAS” puis cliquez sur
« Suivant »
Pour retrouver les configurations des connexions ODBC sous Windows 7, ouvrez l'administrateur de
la source de données ODBC :
Panneau de configuration > Système et sécurité > Outils d'administration > Sources des données
(ODBC) > Sources des données système
La configuration de ODBC peut se faire manuellement, en éditant des fichiers texte odbc.ini ou via
l’outil graphique appelé ODBCConfig.
Dans notre exemple nous allons ajouter une DSN ODBC pour SQL Server :
[SQL_SERVER]
Driver=/home/sas/SQLSERVER_ODBC_DRIVER/S0sqls26.so
Description=SQL Server Wire Protocol
AnsiNPW=1
AuthenticationMethod=1
BulkLoadBatchSize=1024
Database=users
EnableBulkLoad=0
EnableQuotedIdentifiers=0
HostName=monserver.com
PortNumber=1433
Le paramètre Driver pointe sur l’emplacement du pilote ODBC SQL SERVER (S0sqls26.so)
Vous pouvez utiliser l’outil « isql »pour effectuer cette vérification de connexion avec la SGBD.
Pour pouvoir valider votre connexion via ISQL, vous devez avoir
préalablement défini les variables d’environnements
LD_LIBRARY_PATH (ou LIBPATH sous AIX), ODBCHOME et
ODBCINI pour le compte utilisateur exécutant ISQL.
Une fois que la connexion à la source ODBC, via iSql est opérationnelle, vous devez modifier le fichier
sasenv_local de SAS ( /SASFoundation/9.4/bin)
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/home/sas/SQLSERVER_ODBC_DRIVER/
export ODBCHOME=/home/sas/ODBC/
export ODBCINI=/home/sas/ODBC/odbc.ini
Dans une session SAS, vous pouvez alors valider la bonne prise en compte de ces variables, en
soumettant le code ci-dessous :
%put %quote(%sysget(LD_LIBRARY_PATH));
%put %quote(%sysget(ODBCINI));
%put %quote(%sysget(ODBCHOME));
ldd /sas/install/SASFoundation/9.4/sasexe/sasodb
Si, au contraire, vous obtenez le résultat suivant, c’est que votre binaire SAS ne parvient pas à
trouver sa variable LD_LIBRARY_PATH ou que celle-ci ne pointe pas sur un emplacement contenant
la librairie dynamique libodbc.so :
Le tableau ci-dessous récapitule l’ensemble des vérifications à effectuer afin de valider sa connexion
à ODBC.
La première étape consiste à vérifier que le pilote ODBC est bien installé sur la machine
où SAS est installé, et valider la connexion sans utiliser SAS. Sous Windows, voir le
chapitre 6.2 Configuration pas à pas sous Windows et, sous Unix, le chapitre 6.3
Configuration pas à pas sous Unix.
Vérifiez la licence des produits SAS/ACCESS to ODBC. Depuis une session SAS, utilisez le
code ci-dessous pour vérifier si le produit est bien inclus dans la licence :
Une fois les prérequis validés, vous pouvez vérifier la connexion avec la base depuis SAS. Pour cela,
il suffit maintenant d’affecter une bibliothèque ODBC en utilisant une instruction « LIBNAME » avec
un certain nombre de paramètres de connexion.
L’ensemble des options utilisables lors de la création d’une bibliothèque ODBC, notamment les
options LIBNAME sont expliquées sur la page de l’aide LIBNAME Statement Specifics for ODBC.
Exemple de connexion :
Sur Windows, il existe une astuce permettant de retrouver les options de connexion. L’utilisation de
l’option « prompt » ou « dbprompt » dans le LIBNAME ouvre l’interface interactive qui permet de
saisir les valeurs pour les options appropriées par rapport au moteur que vous utilisez dans le
LIBNAME. Attention toutefois, cette option fonctionne uniquement si SAS et la source ODBC sont
définis localement.
Vous pouvez vérifier les contenus des variables macros « sysdbrc » qui contiennent le code (retourne
0 si tout c'est bien passé) et « sysdbmsg » qui retourne le message associé avec le code retourné
en provenance de la base de données. Il existe aussi sqlxrc et sqlxmsg pour la méthode pass-
through.
%put %superq(sysdbmsg);
ODBC: DSN=MYSQL;SERVER=localhost;UID=root;PWD=pass;DATABASE=test;PORT=3306
Exemple : MYODBC
Exemple : MYODBC
- Numéros de versions
- Type de source de données
- Version du logiciel
- Fournisseur
Spécifiez :
Exemple : ODBC
Connexion : SERVERODBC
Maintenant que notre bibliothèque ODBC est créée dans les métadonnées, nous pouvons tester son
accessibilité.
options metaserver=localhost
metaport=8561
metaprotocol=bridge
metauser=sasdemo
metapass=sasdemo
metarepository='Foundation' ;
Comme nous l’avons vu dans les chapitres précédents, lorsque vous utilisez l'interface SAS/ACCESS
to ODBC, il n’est pas nécessaire de configurer une source de données (DSN) pour attribuer une
bibliothèque à votre base de données (http://support.sas.com/kb/52/777.html). Par exemple,
lorsque vous utilisez le pilote ODBC MySQL, vous pouvez établir une connexion sans DSN en utilisant
la syntaxe suivante :
Lors de la mise en place de vos connexions, vous pourriez être confronté à cette problématique :
comment, sous UNIX, mettre en place une connexion vers ODBC et une connexion vers SQL Server ?
En effet, le module SAS/ACCESS Interface to SQL Server s’appuie sur un package ODBC Datadirect
fourni par SAS. Ce package comprend un gestionnaire ODBC et un pilote ODBC pour SQL Server.C
Ce gestionnaire ODBC fonctionne exclusivement avec les pilotes Datadirect. Il n’est donc pas possible
d’y déclarer les informations de connexion vers une base s’appuyant sur un pilote qui n’est pas
Datadirect, comme il n’est pas possible de faire pointer son environnement sur deux gestionnaires
ODBC.
Ainsi, votre fichier ODBC.ini contient les références à l’ensemble des vos sources ODBC.
Il est également possible d’utiliser uniquement SAS/ACCESS to ODBC. Dans ce cas, vous devez
vous procurez votre propre pilote ODBC pour SQL Server et le faire fonctionne dans le gestionnaire
ODBC. Dans ce cas plusieurs solutions sont possibles :
DataDirect fournit les composants clients nécessaires ODBC pour les plates-formes
UNIX/LINUX. Ils peuvent vous octroyer une licence pour un pilote ODBC pour MS SQL
Server et ils fournissent également un gestionnaire de pilotes ODBC. Data Direct offre des
pilotes ODBC pour diverses sources de données ODBC et se sont des pilotes fiables, faciles
à mettre en œuvre et bien supportés.
Microsoft fournit également aussi un pilote ODBC gratuit pour MS SQL Server pour Linux
(uniquement sous Linux). Si vous décidez d’utiliser le pilote Microsoft ODBC sous Linux,
vous aurez besoin d’UnixODBC. Toutefois, SAS supporte UnixODBC version 2.3.2 mais les
pilote Microsoft Sql Server 13 a besoin d’une version de UNIXODBC inférieur à 2.3.2
(inférieur à 2.3.1 pour la version 11). Ainsi, il vous faudra « forcer » l’installation du pilote
Microsoft avec la version 2.3.2 mais gardez à l'esprit que les environnements ODBC
freeware / shareware peuvent-être plus compliqué à configurer et qu'il n'y a pas de support
officiel pour ces offres.
Lorsque vous utilisez l'interface SAS/ACCESS Interface to ODBC pour vous connecter à une base de
données, le système SAS cherche les tables qui appartiennent ou qui ont créés par l'ID utilisateur
utilisé dans la déclaration LIBNAME. Si SAS ne trouve pas de tables associées à cet ID utilisateur, le
journal SAS indique que la bibliothèque a été assignée avec succès :
Cependant, aucune table n’apparait dans la fenêtre SAS Explorer alors que vous des tables sont bien
présentes dans votre base de données :
La bibliothèque ne montre pas de tables car, dans votre base de données, il n’y a pas de tables
appartenant ou créées par l’utilisateur indiqué dans l’instruction LIBNAME. Par conséquent, vous
devez définir un « schéma » dans votre instruction LIBNAME.
Le schéma est un ensemble d’objets d’une base de données, comme les tables, les vues, les fonctions
ou tous autres objets définis. Un utilisateur est un compte qui a des droits sur ces objets. Un
utilisateur peut avoir des droits sur tous les objets d’un schéma ou des droits restrictifs en lecture,
exécution ou en modification, sur un ou plusieurs objets d’un schéma.
Mais un utilisateur peut ne pas avoir de schéma associé à son compte ou son schéma peut être une
coquille vide. Cet utilisateur peut, si ses droits lui permettent, accéder aux objets d’autres schémas.
L’utilisateur A possède ses propres objets dans le schéma A mais il peut aussi accéder aux objets du
schéma B, dont les objets sont gérés par l’utilisateur B :
Dans notre cas, l’utilisateur A n’a pas d’objet dans son schéma A :
Il existe également une méthode pour lister les schémas et objets accessibles par un utilisateur.
proc sql;
connect to odbc(user=scott password=tiger
dsn=oracle);
create table work.odbcSchema as
select * from connection to odbc
(ODBC::SQLTables);
quit;
Vous obtenez une table, dans votre WORK, listant les objets accessibles et les schémas :
La problématique des synonymes va de pair avec la problématique des schémas vue dans le chapitre
précédent. Pour permettre l’identification des objets de la base de données, Oracle utilise les
synonymes. Les synonymes permettent de pointer vers des tables, des vues, des procédures, des
fonctions ou des packages. L’utilisateur a donc besoin de connaître uniquement le nom du synonyme
vers lequel il pointe.
Par défaut, les synonymes publics ne sont pas affichés par le moteur de LIBNAME avec l’interface
SAS/ACCESS to ODBC.
Pour afficher et accéder aux synonymes publics, vous devez spécifier dans votre instruction LIBNAME
les options PRESERVE_TAB_NAMES=YES et SCHEMA=PUBLIC. Notez qu’ils sont publics et ne sont
pas associés à un schéma, bien qu’ils soient stockés sous « PUBLIC » dans les tables système Oracle :
Nous obtenons ainsi une bibliothèque permettant l’accès aux synonymes publics de la base Oracle.
Cette bibliothèque liste l’ensemble des synonymes mais en fonction des droits de l’utilisateur, l’accès
aux objets peut être limité :
Lorsque vous souhaitez travailler avec des tables de votre base de données, il peut arriver que
certaines tables soient manquantes ou que le nom des colonnes de ses tables ne « reflète » pas ce
qui est dans votre base de données. Plusieurs explications possibles :
Le nom de votre table fait plus de 32 caractères (taille maximum pour un nom de table
dans SAS)
Le nom d’une ou plusieurs de vos colonnes de tables font 32 caractères ou contiennent des
caractères spéciaux.
Si le nom de votre table fait plus de 32 caractères, il est possible d’y accéder en créant une vue,
dans la base de données, pointant sur votre table de 32 caractères ou de passer par du Explicit SQL
Pass-Through.
Imaginons que nous souhaitons accéder à une table MYSQL, dont la structure est la suivante :
VALIDVARNAME=V7 Specifies the rules for valid SAS variable names that can be
created and processed during a SAS session.
Si nous exécutons une proc contents sur notre table nous obtenons les informations suivantes :
Nous constatons que le nom de la variable ne « reflète » pas la réalité de la table. En effet, la colonne
s’appelle « champ A $ » et SAS a transformé les caractères spéciaux (les espaces et le $) en « _ »
Nous constatons maintenant que la variable porte le même nom que dans la base de données, à
savoir « champ A $ »
ODBC a été conçu pour répondre aux besoins d’accès aux données de sources de type SQL. Ces
sources de données sont généralement stockées dans des bases de données relationnelles.
ODBC a été élargi pour inclure des bases de données non-relationnelles qui ont leurs données
stockées dans des colonnes et des lignes.
OLE DB est une technologie Microsoft, et également une API permettant l’accès à des données sous
des formes diverses et variées – relationnelles, mais aussi non-relationnelles et multi-
dimensionnelles – par l’intermédiaire d’une seule interface de programmation COM.
La technologie SAS In-Database correspond à la capacité de SAS à pousser des traitements vers la
base de données. Ainsi, lorsqu’une procédure (Proc FREQ ou proc SUMMARY par exemple) est
soumise dans SAS avec en entrée une table du SGBD, SAS va « traduire » la procédure en langage
SQL natif.
La technologie SAS In-Database n’est PAS supportée avec SAS/ACCESS interface to ODBC. Pour plus
d’information, vous pouvez vous référer à la documentation SAS Introduction to SAS In-Database
Processing
Pour plus d’informations sur la technologie SAS In-Database, vous pouvez lire l’article SAS IN-
DATABASE : QUAND LE TRAITEMENT SAS S’EXÉCUTE DANS LE SGBD
Cette section présente quelques erreurs typiques que vous pouvez rencontrer lors de la mise en place
d’une LIBNAME ODBC et l’utilisation du moteur SAS/ACCESS interface to ODBC.
Pour chaque problème, nous fournissons les éléments à vérifier pour résoudre l’erreur.
ERROR: The SAS/ACCESS Interface to ODBC cannot be loaded. The SASODB code
appendage could not be loaded.
ERROR: Error in the LIBNAME statement.
de l’OS )
2. Vérifier que l’utilisateur exécutant la session SAS a les droits accès au répertoire contant la
La connexion à la base a fonctionné mais les informations de connexions fournies n’ont pas
permis au module SAS/ACCESS d’accéder aux données proprement dites. Dans ce cas,
vous devez vérifier, en dehors de SAS, si la connexion est possible avec le couple nom
d’utilisateur/mot de passe utilisé dans SAS lors de la création du libname.
Ce message peut survenir lorsque vous essayez d’établir une connexion à une base de
données DB2, en utilisant SAS/ACCESS to ODBC.
Pour contourner ce problème, vous devez ajouter un utilisateur DB2 dans le groupe
DB2USERS, mettre à jour votre pilote DB2 jusqu’à la version 9.7 ou version ultérieure et
installer une version complète du pilote DB2 (et non pas un client léger DB2). Vous
trouverez plus de détails dans la note http://support.sas.com/kb/49/615.html
Ce message d’erreur peut survenir lorsque vous utilisez une connexion ODBC à SQL Server
l’option BULKLOAD=yes avec une table contenant un champ de type DATETIME2.
Ce problème n’apparait pas si l’option BULKLOAD est positionnée à NO.
Ce problème apparait avec SAS 9.4M1. Un hotfix pour SAS 9.4M1 est disponible à l’adresse
suivante http://ftp.sas.com/techsup/download/hotfix/HF2/N80.html#53865
SAS « crashe » lorsque vous utilisez une valeur supérieure à 100 pour les options de
LIBNAME READBUFF ou INSERTBUFF
(http://support.sas.com/documentation/cdl/en/acreldb/67589/HTML/default/viewer.htm#p
0u61lysy7qgzmn1bd66tz1om1yx.htm)
Ce problème survient avec le pilote Oracle 11.2.x. Ce problème est identifié comme une
anomalie dans le pilote Oracle.
Pour contourner ce problème, vous pouvez modifier la configuration du pilote en passant
l’option « Fetch Buffer Size » de 64000 à 1024000.
Plus de détails dans NOTE 52761 : http://support.sas.com/kb/52/761.html
Durant la mise en place de votre connexion à une base SQL Server, via ODBC, vous pouvez être
confronté à l’erreur ci-dessus lorsque vous exécutez une PROC APPEND.
Ce cas d’erreur ne se produit que dans certains cas et dans une combinaison d’options particulière
dans la déclaration du libname. Aussi, ce comportement a été observé que lorsque toutes les
conditions suivantes sont réunies:
Pour contourner ce problème, vous pouvez utiliser l’une des solutions suivantes :
Utilisez l'option INSERTBUFF à la place de l’option BCP.
Utilisez le type de données DECIMAL dans la table dans SQL Server au lieu du type de
données MONEY.
Utilisez une version 64 bits de SAS.
Ce message d’erreur, remonté par le driver ODBC à la session SAS, peut se produire lorsque vous
essayez d’accéder à une table ayant un ou plusieurs espaces dans son nom. Pour accéder aux
données de cette table et, afin qu’elle soit visible dans l’explorateur, essayez les options suivantes :
Si malgré toutes les informations contenues dans cet article, vous ne parvenez pas à faire fonctionner
votre connexion via SAS/ACCESS to ODBC ou si vous rencontrez des erreurs (techniques, données
mal formatées…) vous pouvez ouvrir un dossier au support SAS (support@sas.com) en précisant :
5. LIENS UTILES
http://www.sas.com/offices/europe/france/services/support/faq/sasaccess_odbc.html
http://www2.sas.com/proceedings/forum2008/135-2008.pdf
RECOMMENDED READING SAS/ACCESS 9.4 for Relational Databases: Reference, Third Edition.
Available at http://support.sas.com/documentation/cdl/en/acreldb/66787/PDF/default/acreldb.pdf
Defining an ODBC Library in SAS® 9.2 Management Console Using Microsoft Windows NT
Authentication : https://support.sas.com/techsup/technote/ts802.pdf
https://support.sas.com/techsup/technote/ts765.pdf
6. CONCLUSION
J’espère que vous avez eu autant de plaisir à lire cet article que j’ai eu à l’écrire mais ce dont je ne
doute pas, c’est que vous devez maintenant vous rendre compte des possibilités offertes par
l'interface SAS/ACCESS to ODBC. Ainsi, comme vous l’avez lu, SAS/ACCESS Interface to ODBC est
un produit très polyvalent qui vous permet d'accéder aux données provenant de nombreuses sources
de données.
La prochaine étape consiste à utiliser ces astuces et techniques pour explorer les sources de données
ODBC que vous utilisez tous les jours.
Nicolas HOUSSET
Consultant Support Clients SAS France