Publié le :
Macro SASHELP

Macro AHGlibpath - Récupération du chemin physique d'une librairie

Ce code est également disponible en : Deutsch English Español
Cette macro analyse le nom de la librairie (ou de la table) fourni. Elle exclut les librairies standards (WORK, SASHELP, SASUSER). Pour les autres librairies, elle interroge la vue SASHELP.VLIBNAM pour extraire le chemin physique (path) et le stocke dans une variable macro spécifiée. Note : Le code semble contenir une incohérence variable (&thedsn vs &lib) et des erreurs de syntaxe potentielles (%upcase(lib) au lieu de &lib).
Analyse des données

Type : SASHELP


Utilisation de la vue système SASHELP.VLIBNAM pour lire les métadonnées des librairies.

1 Bloc de code
DATA STEP
Explication :
Définition de la macro. Logique conditionnelle pour déterminer le libref cible. Si ce n'est pas une librairie par défaut, exécution d'un DATA STEP _NULL_ pour lire SASHELP.VLIBNAM et assigner le chemin à la macro-variable cible via CALL SYMPUT.
Copié !
1%macro AHGlibpath(lib,into);
2%IF not %index(&thedsn,.) %THEN %let lib=Work;
3%ELSE %let lib=%scan(&lib,1,.);
4 
5%IF %upcase(lib)=WORK %THEN ;
6%ELSE %IF %upcase(lib)=SASHELP %THEN ;
7%ELSE %IF %upcase(lib)=SASUSER %THEN ;
8%ELSE
9%DO;
10DATA _null_;
11 SET sashelp.vlibnam(where=(upcase("&lib")=LIBNAME));
12 call symput("&into",path);
13RUN;
14%END;
15 
16%mend;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.