Publié le :
Macro TRANSFORMATION

Macro SAS mp_dropmembers

Ce code est également disponible en : Deutsch English Español
Cette macro, `mp_dropmembers`, est conçue pour supprimer de manière sécurisée des tables (datasets) et/ou des vues SAS© d'une bibliothèque spécifiée. Elle inclut une condition (`iftrue`) pour permettre une exécution conditionnelle, et vérifie si la liste d'objets à supprimer est vide pour éviter des actions inutiles. Elle utilise `PROC DATASETS` avec l'option `nolist` pour éviter un affichage excessif dans le log, et exécute deux commandes `delete`: une pour les tables et une pour les vues (`/mtype=view`), assurant ainsi que les deux types d'objets sont traités s'ils existent sans provoquer d'erreurs si un type n'est pas présent ou si l'objet n'existe pas. L'exemple d'utilisation montre comment l'utiliser pour des tables et vues temporaires.
Analyse des données

Type : TRANSFORMATION


La macro `mp_dropmembers` n'a pas pour objectif de créer de nouvelles données ni de lire directement des données de sources externes ou de SASHELP. Son rôle est de gérer et de supprimer des tables et vues existantes au sein d'une bibliothèque spécifiée par l'utilisateur (`libref`). Les exemples d'utilisation mentionnent `sashelp.class` pour la création de tables temporaires à des fins de démonstration, mais cela ne constitue pas une dépendance directe de la macro.

1 Bloc de code
MACRO mp_dropmembers
Explication :
Ce bloc définit la macro `mp_dropmembers` avec trois paramètres : `list` (liste des objets à supprimer), `libref` (bibliothèque cible, par défaut 'WORK'), et `iftrue` (condition d'exécution, par défaut '1=1'). La macro vérifie d'abord la condition `iftrue` et se termine si elle est fausse. Ensuite, elle vérifie si la `list` d'objets est vide en utilisant la macro `mf_isblank`; si c'est le cas, elle affiche une note et se termine. Si la liste n'est pas vide, elle utilise `PROC DATASETS` pour supprimer les objets. Deux commandes `DELETE` sont utilisées: une pour les tables et une autre pour les vues (`/mtype=view`), assurant une suppression robuste sans générer d'erreurs si l'objet n'existe pas ou n'est pas du type spécifié.
Copié !
1%macro mp_dropmembers(
2 list /* space separated list of datasets / views */
3 ,libref=WORK /* can only drop from a single library at a time */
4 ,iftrue=%str(1=1)
5)/*/STORE SOURCE*/;
6 
7 %IF not(%eval(%unquote(&iftrue))) %THEN %return;
8 
9 %IF %mf_isblank(&list) %THEN %DO;
10 %put NOTE: nothing to drop!;
11 %return;
12 %END;
13 
14 PROC DATASETS lib=&libref nolist;
15 delete &list;
16 delete &list /mtype=view;
17 RUN;
18%mend mp_dropmembers;
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.
Informations de Copyright : Copyright (c) 2001-2006 Rodney Sparapani. Ce fichier est un logiciel libre distribué sous les termes de la Licence Publique Générale GNU (GPL) version 2 ou ultérieure.