Le Conseil de l'Expert
Michael
Responsable de l'infrastructure Viya.
« Ce programme illustre parfaitement la polyvalence de SAS lorsqu'il s'agit d'extraire des métadonnées de session. Identifier le chemin physique d'un libref est essentiel pour automatiser des transferts de fichiers, générer des rapports dynamiques ou interagir avec le système d'exploitation.
Analyse des trois méthodologies employées :
L'Approche Macro (%SYSFUNC) : C'est la méthode la plus directe et la plus légère. En utilisant pathname(), vous obtenez l'information instantanément sans solliciter le moteur de données. C'est l'outil idéal pour des besoins ponctuels au sein d'un flux de macro-programmation.
L'Approche Data Step (VLIBNAM) : En interrogeant la vue système sashelp.vlibnam, le script accède au catalogue des bibliothèques actives. L'utilisation du where et du keep est une excellente pratique de performance, permettant de charger en mémoire uniquement l'information strictement nécessaire avant de l'exporter en variable macro via call symputx.
L'Approche SQL (DICTIONARY) : La table dictionary.libnames est la version "bas niveau" et standardisée des métadonnées de session. La clause into :variable est ici la méthode la plus élégante pour peupler une variable macro à partir d'une requête, offrant une lisibilité maximale pour les développeurs habitués au langage SQL.
Pourquoi comparer ces méthodes ? Bien que le résultat soit identique, le choix de la méthode dépend du contexte :
%SYSFUNC pour la rapidité et la simplicité.
DATA Step pour intégrer la recherche dans une logique de programmation complexe avec plusieurs conditions.
PROC SQL pour sa puissance de filtrage et sa syntaxe universelle.
Astuce d'expert : Attention à la casse ! Dans les tables DICTIONARY ou les vues SASHELP, les noms de bibliothèques (libname) sont toujours stockés en majuscules. Si votre clause where utilise 'datagit' au lieu de 'DATAGIT', la requête échouera silencieusement. »