Cet article montre comment configurer le module SAS/ACCESS interface to SQL Server sur un environnement Linux. Les chapitres sont les suivants :
Voici les étapes à suivre pour configurer le module. Dans cet exemple je vais au plus simple. Des adaptations peuvent être nécessaire en fonction des spécificités de votre environnement.
Puis testez la connexion avec la commande ci-dessous :
isql SQLServerWire UserSQL monpass -v
Si votre fichier odbc.ini est mal défini, vous pouvez obtenir l'erreur :
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
Dans ce cas :
Dans ce cas :
Vous constatez l'anomalie suivante :
Le fichier libS0icu27.so se trouve dans AccessClients/9.4/SQLServer/lib/ Il faut donc vérifier la présence de AccessClients/9.4/SQLServer/lib/ la variable $LD_LIBRARY_PATH
Note : Le moteur est SQLSVR et non SQLSRV. Il s'agit d'une erreur courante. ( ERROR: The SQLSRV engine cannot be found )
- Modification du fichier sasenv_local pour 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’environnement,
- Modification du fichier odbc.ini,
- Tester la connexion en dehors de SAS ( avec isql ),
- Tester la connexion dans une 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,
- Quelques erreurs courantes,
- Vérifier 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’environnement dans SAS,
- Quelques Usage Note
Voici les étapes à suivre pour configurer le module. Dans cet exemple je vais au plus simple. Des adaptations peuvent être nécessaire en fonction des spécificités de votre environnement.
Modification du fichier sasenv_local pour 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'environnement
Ajoutez 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. suivante dans le fichier : export ODBCHOME=/opt/sas/install/AccessClients/9.4/SQLServer/ export ODBCINST=$ODBCHOME/odbcinst.ini export ODBCINI=$ODBCHOME/odbc.ini Il faut également enrichir le LD_LIBRARY_PATH : export LD_LIBRARY_PATH=$ODBCHOME:/opt/sas/install/AccessClients/9.4/SQLServer/lib/:$LD_LIBRARY_PATH Attention : Il est important de bien concaténer la variable avec $LD_LIBRARY_PATHModification du fichier odbc.ini
Modifier le fichier comme ci-dessous : [ODBC Data Sources] SQLServerWire=SAS Institute, Inc 7.1 SQL Server Wire Protocol [ODBC] IANAAppCodePage=4 InstallDir=/opt/sas/install/AccessClients/9.4/SQLServer/ Trace=0 TraceFile=odbctrace.out TraceDll=/opt/sas/install/AccessClients/9.4/SQLServer/lib/S0trc27.so [SQLServerWire] Driver=/opt/sas/install/AccessClients/9.4/SQLServer/lib/S0sqls27.so AnsiNPW=1 AuthenticationMethod=1 Database=sas EnableBulkLoad=0 EnableScrollableCursors=3 EnableQuotedIdentifiers=1 EncryptionMethod=0 FetchTSWTZasTimestamp=1 FetchTWFSasTime=0 GSSClient=native HostName=votre_serveur_sql_server LoginTimeout=15 LogonID= Password= PortNumber=1433 QueryTimeout=0Tester la connexion en dehors de SAS ( avec isql )
Avant de tester la connexion dans SAS, je vous encourage à tester la connexion avec isql afin vous assurer que 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'environnement sont bien définis et votre fichier odbc.ini correctement renseigné. Vérifiez la présence 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 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.. L'idéal est de sourcer le fichier sasenv_local de SAS afin de simuler le fonctionnement dans SAS. (install/SASFoundation/9.4/bin/sasenv_local) env | grep ODBC
Puis testez la connexion avec la commande ci-dessous :
isql SQLServerWire UserSQL monpass -v
Si votre fichier odbc.ini est mal défini, vous pouvez obtenir l'erreur :
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
Dans ce cas :
- Vérifiez la présence du fichier odbc.ini et que son pathUn PATH (chemin) dans SAS Viya est une caslib pointant vers un répertoire de système de fichiers local ou réseau permettant au serveur CAS d'accéder directement aux fichiers de données. correspond à la variable d'environnement $ODBCINI
- Vérifiez bien la présence de votre DSN dans le fichier
Dans ce cas :
- Vérifiez les droits du fichiers.
- Vérifier les librairies dynamiques :
Vous constatez l'anomalie suivante :
Le fichier libS0icu27.so se trouve dans AccessClients/9.4/SQLServer/lib/ Il faut donc vérifier la présence de AccessClients/9.4/SQLServer/lib/ la variable $LD_LIBRARY_PATH
Tester la connexion dans une 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
Pour tester et valider la connexion dans une 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, exécutez le code SAS suivant : libname test sqlsvr dsn="SQLServerWire" user="UserSQL " password="monpass"; Ce qui donne (si tout va bien) :
Note : Le moteur est SQLSVR et non SQLSRV. Il s'agit d'une erreur courante. ( ERROR: The SQLSRV engine cannot be found )






