Le script génère lui-même les fichiers XML nécessaires à la `PROC METADATA` via des étapes DATA `_NULL_` et n'utilise pas de données externes.
1 Bloc de code
DATA STEP
Explication : Vérifie l'existence de la bibliothèque dans le serveur de métadonnées en utilisant la fonction `metadata_resolve` avec le nom fourni en paramètre. Récupère l'URI et le type de l'objet.
Copié !
data _null_;
length type uri $256;
rc=metadata_resolve("omsobj:SASLibrary? @Name='&name'",type,uri);
call symputx('checktype',type,'l');
call symputx('liburi',uri,'l');
putlog (_all_)(=);
run;
Explication : Génère le fichier XML de requête pour l'action `DeleteMetadata`. Ce fichier temporaire contient l'instruction de suppression ciblant l'URI de la bibliothèque identifiée précédemment.
Copié !
filename &fname1 temp lrecl=10000;
filename &fname2 temp lrecl=10000;
data _null_ ;
file &fname1 ;
put "<DeleteMetadata><Metadata><SASLibrary Id='&liburi'/>";
put "</Metadata><NS>SAS</NS><Flags>268436480</Flags><Options/>";
put "</DeleteMetadata>";
run ;
1
filename &fname1 temp lrecl=10000;
2
filename &fname2 temp lrecl=10000;
3
DATA _null_ ;
4
file &fname1 ;
5
put "<DeleteMetadata><Metadata><SASLibrary Id='&liburi'/>";
6
put "</Metadata><NS>SAS</NS><Flags>268436480</Flags><Options/>";
7
put "</DeleteMetadata>";
8
RUN ;
3 Bloc de code
PROC METADATA
Explication : Exécute la procédure `PROC METADATA` pour envoyer la requête XML générée au serveur de métadonnées et effectuer la suppression.
Copié !
proc metadata in=&fname1 out=&fname2 verbose;run;
1
PROC METADATA in=&fname1 out=&fname2 verbose;RUN;
4 Bloc de code
DATA STEP
Explication : Vérifie post-exécution si la bibliothèque existe toujours en interrogeant à nouveau le serveur de métadonnées avec l'URI. Le résultat est stocké dans la macro-variable `isgone`.
Copié !
data _null_;
length type uri $256;
call missing (of _all_);
rc=metadata_resolve("omsobj:SASLibrary? @Id='&liburi'",type,uri);
call symputx('isgone',type,'l');
run;
Explication : Appelle la macro utilitaire `%mp_abort` pour arrêter l'exécution et signaler une erreur si la bibliothèque est toujours détectée (échec de la suppression).
Copié !
%mp_abort(iftrue=(&isgone = SASLibrary)
,mac=&sysmacroname
,msg=%str(Library (&name) NOT deleted)
)
1
%mp_abort(iftrue=(&isgone = SASLibrary)
2
,mac=&sysmacroname
3
,msg=%str(Library (&name) NOT deleted)
4
)
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.
« Attention, ce script supprime la définition de la bibliothèque dans les métadonnées SAS (ce qui la rend invisible pour les utilisateurs et les applications), mais il ne supprime pas les fichiers .sas7bdat sur le disque dur ou les tables dans la base de données source. »
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.