Alle globalen Variablen auf Null bzw Leerstring setzen
Verfasst von SAS-Fidi am 29 Juni, 2010 - 10:23
Gibt es eine Möglichkeit alle globalen Variablen auf Null bzw Leerstring zu setzen, ohne sie einzelnd der Reihe nach anzusprechen?
Das Ganze ist gedacht, um vor dem erneuten Aufruf mehrerer Macros das Programm wieder in den Anfangszustand zu versetzen.
VG SAS-Fidi
»
- Anmelden oder Registrieren um Kommentare zu schreiben

Query auf dictionary.macros
Hallo SAS-Fidi,
man könnte das mit einer Abfrage auf dictionary.macros machen. Ich bin mir nur nicht sicher, ob bestimmte SAS-Prozeduren (außer SQL, deren Variablen ich unten explizit ausschließe) weitere globale Variablen anlegen können, mit denen man ins Gehege kommen könnte.
select Name
into :GlobalMacVars separated by ' '
from dictionary.macros
where Scope = 'GLOBAL' and substr( Name, 1, 3 ) not in ('SQL', 'SYS')
;
quit;
%put &GlobalMacVars ;
%symdel &GlobalMacVars;
Beste Grüße
Alex K.
Eine oder abzählbar viele
Eine oder abzählbar viele Makrovariablen kann man wie folgt zurücksetzen/löschen.
%SYMDEL test;
%PUT _global_ ;
Rückblickend erscheint es mir
Rückblickend erscheint es mir nun doch zu gefährlich alle globalen Variablen auf einmal auf einen Standardwert zu setzen. Hab zuviel Angst, daß ich mir damit wichtige Variablen kille. Habe sie jetzt doch einzelnd mit %symdel auf ihren Anfangswert gesetzt.
VG SAS-Fidi