Der Code arbeitet mit dem `work.sasmacr`-Katalog der aktuellen SAS-Sitzung, der die kompilierten Makros enthält. Er erstellt einen temporären Datensatz `_listmac` in der `WORK`-Bibliothek, um die Liste der Makros zu speichern, bevor diese mit `PROC SQL` gefiltert werden. Es werden keine externen Daten gelesen oder für seine Funktion benötigt.
1 Codeblock
MACRO DEFINITION
Erklärung : Dieser Block definiert das Makro `delmac` mit einem Parameter `like`. Er initialisiert lokale Variablen, erfasst den aktuellen Status der SAS-Option `notes` und deaktiviert sie für die Dauer des Makros. Er führt auch eine Validierung des `like`-Parameters durch und verarbeitet ihn für die SQL-Suche vor, indem er ihn in Großbuchstaben umwandelt und ':' durch '%' ersetzt.
Erklärung : Dieser Block verwendet `PROC CATALOG`, um alle Einträge vom Typ 'macro' aus dem Katalog `work.sasmacr` aufzulisten und sie in einen temporären Datensatz namens `_listmac` zu schreiben.
Erklärung : Dieser `PROC SQL`-Block wählt Makronamen aus dem temporären Datensatz `_listmac` aus, die dem durch den Parameter `like` bereitgestellten Muster entsprechen. Die gefundenen Makronamen werden in der Makrovariablen `delmac` durch Leerzeichen getrennt verkettet. Die Option `escape '\'` ermöglicht die Verwendung des Zeichens '\' zum Escaping von SQL-Platzhaltern ('_').
Kopiert!
proc sql noprint;
select name into :delmac separated by " " from _listmac
where name like "&like" escape '\';
quit;
1
PROC SQL noprint;
2
select name into :delmac separated BY" " from _listmac
3
where name like "&like" escape '\';
4
QUIT;
4 Codeblock
PROC DATASETS
Erklärung : Dieser Block verwendet `PROC DATASETS`, um den temporären Datensatz `_listmac` zu löschen, der nach dem Extrahieren der Makronamen nicht mehr benötigt wird.
Kopiert!
proc datasets nolist;
delete _listmac;
quit;
1
2
PROC DATASETS nolist;
3
delete _listmac;
4
5
QUIT;
6
5 Codeblock
PROC CATALOG
Erklärung : Dieser Bedingungsblock prüft, ob die Makrovariable `delmac` Makronamen enthält (d.h., ob dem Muster entsprechende Makros gefunden wurden). Ist dies der Fall, wird `PROC CATALOG` verwendet, um diese Makros aus dem Katalog `work.sasmacr` zu löschen.
Erklärung : Dieser Block verwaltet die Exit-Logik des Makros. Er enthält ein `%exit:`-Label für die Fehlerbehandlung (wenn kein 'like'-Muster angegeben wird) und ein `%skip:`-Label für das normale Ende der Ausführung. Schließlich stellt er die SAS-Option `notes` auf ihren ursprünglichen Wert zurück, um sicherzustellen, dass das Makro die SAS-Umgebung nicht dauerhaft beeinträchtigt.
%exit: %put &err: (delmac) No "like" string supplied;
3
%skip:
4
5
options &savopts;
6
7
%mend delmac;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : This is public domain software. No guarantee as to suitability or accuracy is given or implied. User uses this code entirely at their own risk.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.