Alle globalen Variablen auf Null bzw Leerstring setzen

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

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.

proc sql noprint;
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.

%LET test = 11;
%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