Das Makro fragt ausschließlich die Systemansicht `sashelp.vmacro` ab, die Metadaten zu allen vorhandenen Makrovariablen in der SAS-Sitzung enthält. Es werden keine anderen externen Datenquellen verwendet oder erstellt.
1 Codeblock
Makrologik (Konstruktion der WHERE-Klausel)
Erklärung : Dieser erste Block initialisiert drei lokale Makrovariablen: `dsid` (für die Dataset-ID), `rc` (für den Rückgabecode) und `where` (für die Filterklausel). Anschließend wird die `WHERE`-Klausel konstruiert, die zur Abfrage der Ansicht `sashelp.vmacro` verwendet wird. Wenn der Parameter `scope` angegeben ist, wird die Suche auf den angegebenen Geltungsbereich beschränkt, der in Großbuchstaben umgewandelt wird. Andernfalls schließt die Suche den Geltungsbereich des aktuellen Makros (`&sysmacroname`) aus. Schließlich wird die `WHERE`-Klausel ergänzt, um den Namen der zu suchenden Makrovariable (`&mvar`) einzuschließen, ebenfalls in Großbuchstaben umgewandelt.
Erklärung : Dieser zweite Block führt die Überprüfungslogik aus. Er verwendet die Funktion `%sysfunc(open())`, um die Systemansicht `sashelp.vmacro` zu öffnen und dabei die zuvor definierte `WHERE`-Klausel anzuwenden. Wenn das Öffnen des Datasets erfolgreich ist (d.h. `&dsid` ist nicht null), versucht das Makro, einen Datensatz mit `%sysfunc(fetch(&dsid))` abzurufen. Wird ein Datensatz gefunden (angezeigt durch einen Rückgabecode ungleich -1), bedeutet dies, dass die Makrovariable im gesuchten Geltungsbereich existiert. Das Dataset wird anschließend mit `%sysfunc(close(&dsid))` geschlossen. Das Makro gibt `1` zurück, wenn die Makrovariable gefunden wird, und `0` sonst.
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.
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.