Die Daten werden durch Abfragen der SAS-Systemtabelle `dictionary.tables` gewonnen, die Metadaten zu allen im SAS-Umfeld registrierten Tabellen bereitstellt. Es handelt sich um eine interne Informationsquelle des SAS-Systems und nicht um externe oder vom Benutzer direkt in diesem Skript erstellte Daten.
1 Codeblock
Macro SAS
Erklärung : Dieser Block markiert den Beginn der Makroausführung und -definition. Er kündigt den Makroaufruf an und initialisiert die globale Makrovariable `_dslist_` als leer. Er enthält die Logik, um dem Parameter `libref` einen Standardwert zuzuweisen, falls dieser nicht angegeben ist (unter Verwendung der Systemoption 'user' oder 'work'), und stellt sicher, dass der `libref` in Großbuchstaben ist.
%IF not %LENGTH(&libref) %THEN %let libref=%sysfunc(getoption(user));
7
%IF not %LENGTH(&libref) %THEN %let libref=work;
8
%let libref=%upcase(&libref);
2 Codeblock
PROC SQL
Erklärung : Dieses Segment verwendet `PROC SQL` im stillen Modus (`noprint`), um die Metadatentabelle `dictionary.tables` abzufragen. Es wählt alle eindeutigen Mitgliedsnamen (`memname`) aus, die vom Typ 'DATA' sind und zur durch `&libref` angegebenen Bibliothek gehören. Die abgerufenen Namen werden in der Makrovariablen `_dslist_` gespeichert, mit einem bedingten Trennzeichen: entweder ein Leerzeichen oder `&libref..`, wenn der Parameter `prefix` aktiviert ist.
Kopiert!
proc sql noprint;
select distinct memname into :_dslist_ separated by
%if %length(&prefix) %then %do;
" &libref.."
%end;
%else %do;
' '
%end;
from dictionary.tables
where memtype='DATA'
and libname="&libref";
quit;
1
PROC SQL noprint;
2
select distinct memname into :_dslist_ separated BY
3
%IF %LENGTH(&prefix) %THEN %DO;
4
" &libref.."
5
%END;
6
%ELSE %DO;
7
' '
8
%END;
9
from dictionary.tables
10
where memtype='DATA'
11
and LIBNAME="&libref";
12
QUIT;
3 Codeblock
Macro SAS
Erklärung : Dieser letzte Block passt die Makrovariable `_dslist_` an, falls das `prefix` verwendet wurde, da das 'separated by' in `PROC SQL` nur zwischen den Elementen, nicht aber am ersten Element angewendet wird. Er beendet die `PROC SQL` mit `run;` und schließt die Definition des Makros `dslist` mit `%mend` ab.
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.