SAS Macro : Automatisez l'inventaire de vos bibliothèques avec SASHELP.VTABLE

Ce code est également disponible en : Deutsch English Español
Niveau de difficulté
Débutant
Publié le :
Michael

Le Conseil de l'Expert

Michael
Responsable de l'infrastructure Viya.

Pour optimiser radicalement le temps de reponse sur des serveurs contenant des milliers de tables, ajoutez systematiquement la clause memtype='DATA' dans votre filtre where afin d'eviter que SAS ne scanne inutilement les vues ou les index, et assurez-vous de toujours utiliser upcase sur la variable libname pour garantir la correspondance avec le dictionnaire systeme.

La macro `AHGlibMems` prend en entrée un nom de bibliothèque (par défaut 'work') et un nom de variable macro de destination. Elle interroge la vue système `sashelp.vtable` pour extraire les noms des tables associées à cette bibliothèque. Le résultat est une liste de noms concaténés (format `lib.table`) séparés par des espaces, stockée dans la variable macro globale spécifiée.
Analyse des données

Type : SASHELP


Lecture des métadonnées via la vue système standard `sashelp.vtable`.

1 Bloc de code
PROC SQL
Explication :
Déclaration globale de la variable de liste. Utilisation de PROC SQL pour sélectionner et concaténer les noms des tables trouvées dans `sashelp.vtable` correspondant au `libname` fourni.
Copié !
1%macro AHGlibMems(lib=work,locallist=datalist);
2 %global &locallist;
3 PROC SQL noprint;
4 select compress("&lib.."||memname) into :&locallist separated BY ' '
5 from sashelp.vtable
6 where LIBNAME=upcase("&lib");
7 QUIT;
8
9%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.