Deleting any or all global macro variables

Introduction

A lot of hits on my web site are the result of people searching on "global macro variables". This page will tell you how to list these variables and delete them.

Listing all global macro variables

To list all the global macro variables and their values in your current sas session then use "%put _all_;" All your global macro variables will be listed in the log. This is what appeared in my log when I did this.
 
595  %put _all_;
GLOBAL FPATIENT 'Arial / Bold'
GLOBAL HPOS 50
GLOBAL HPOSMINGAP 1.3
GLOBAL FITEMTEXT 'Arial'
GLOBAL HPOSDMEAN 35
GLOBAL HPOSMINFIGWIDTH 0.3
GLOBAL HSCALETEXT 0.8
GLOBAL DRAWBLOCKBOX 1
GLOBAL HPATIENT 2
GLOBAL CITEMTEXT maroon
GLOBAL CFIGURE BIYG
GLOBAL HBLOCKDESC 1
GLOBAL CBLOCKBOX maroon
GLOBAL HITEMDESC 0.8
GLOBAL USEARROWS 1
GLOBAL MAXUCLETTERS 23
GLOBAL CSTRIPE beige
GLOBAL HPOSDMIN 20
GLOBAL CBLOCKDESC black
GLOBAL CBLOCKDESCBG CXE0E0E0
GLOBAL HFIGURE 0.4
GLOBAL UNIFORMSCALE 1
GLOBAL CSCALE maroon
GLOBAL FITEMDESC 'Arial'
GLOBAL CPATIENT black
GLOBAL CPATIENTBG CXE0E0E0
GLOBAL HITEMTEXT 0.7
GLOBAL CBACK white
GLOBAL MAXMCLETTERS 29
GLOBAL VPOS 150
GLOBAL FBLOCKDESC 'Arial / Bold'
GLOBAL CITEMDESC maroon
GLOBAL CITEMDESCTRUNC blue
GLOBAL YPIXELS 2000
GLOBAL HPOSDMAX 50
GLOBAL XPIXELS 1000
AUTOMATIC AFDSID 0
AUTOMATIC AFDSNAME
AUTOMATIC AFLIB
AUTOMATIC AFSTR1
AUTOMATIC AFSTR2
AUTOMATIC FSPBDV
AUTOMATIC SYSBUFFR
AUTOMATIC SYSCC 1012
AUTOMATIC SYSCHARWIDTH 1
AUTOMATIC SYSCMD
AUTOMATIC SYSDATE 22MAR08
AUTOMATIC SYSDATE9 22MAR2008
AUTOMATIC SYSDAY Saturday
AUTOMATIC SYSDEVIC
AUTOMATIC SYSDMG 0
AUTOMATIC SYSDSN SASUSER RGPP_STYLE
AUTOMATIC SYSENDIAN LITTLE
AUTOMATIC SYSENV FORE
AUTOMATIC SYSERR 0
AUTOMATIC SYSFILRC 0
AUTOMATIC SYSINDEX 5
AUTOMATIC SYSINFO 0
AUTOMATIC SYSJOBID 3252
AUTOMATIC SYSLAST SASUSER.RGPP_STYLE
AUTOMATIC SYSLCKRC 0
AUTOMATIC SYSLIBRC 0
AUTOMATIC SYSMACRONAME
AUTOMATIC SYSMAXLONG 2147483647
AUTOMATIC SYSMENV S
AUTOMATIC SYSMSG
AUTOMATIC SYSNCPU 1
AUTOMATIC SYSPARM
AUTOMATIC SYSPBUFF
AUTOMATIC SYSPROCESSID 41D6AD4FCBCBF7CF4020000000000000
AUTOMATIC SYSPROCESSNAME DMS Process
AUTOMATIC SYSPROCNAME
AUTOMATIC SYSRC 0
AUTOMATIC SYSSCP WIN
AUTOMATIC SYSSCPL XP_HOME
AUTOMATIC SYSSITE 0042234001
AUTOMATIC SYSSIZEOFLONG 4
AUTOMATIC SYSSIZEOFUNICODE 2
AUTOMATIC SYSSTARTID
AUTOMATIC SYSSTARTNAME
AUTOMATIC SYSTIME 17:53
AUTOMATIC SYSUSERID Roland
AUTOMATIC SYSVER 9.1
AUTOMATIC SYSVLONG 9.01.01M3P020206
AUTOMATIC SYSVLONG4 9.01.01M3P02022006

What you see above is all the global macro variables I set up as "GLOBAL" macro variables. What follows are the "AUTOMATIC" macro variables that sas sets up. You can see from SYSVER, third from the bottom, that I am using version 9.1 of sas.

You can go one better than using "%put _all_;" if all you want to see are global macro variables. Use "%put _global_;" instead.
 
618  %put _global_;
GLOBAL FPATIENT 'Arial / Bold'
GLOBAL HPOS 50
GLOBAL HPOSMINGAP 1.3
GLOBAL FITEMTEXT 'Arial'
GLOBAL HPOSDMEAN 35
GLOBAL HPOSMINFIGWIDTH 0.3
GLOBAL HSCALETEXT 0.8
GLOBAL DRAWBLOCKBOX 1
GLOBAL HPATIENT 2
GLOBAL CITEMTEXT maroon
GLOBAL CFIGURE BIYG
GLOBAL HBLOCKDESC 1
GLOBAL CBLOCKBOX maroon
GLOBAL HITEMDESC 0.8
GLOBAL USEARROWS 1
GLOBAL MAXUCLETTERS 23
GLOBAL CSTRIPE beige
GLOBAL HPOSDMIN 20
GLOBAL CBLOCKDESC black
GLOBAL CBLOCKDESCBG CXE0E0E0
GLOBAL HFIGURE 0.4
GLOBAL UNIFORMSCALE 1
GLOBAL CSCALE maroon
GLOBAL FITEMDESC 'Arial'
GLOBAL CPATIENT black
GLOBAL CPATIENTBG CXE0E0E0
GLOBAL HITEMTEXT 0.7
GLOBAL CBACK white
GLOBAL MAXMCLETTERS 29
GLOBAL VPOS 150
GLOBAL FBLOCKDESC 'Arial / Bold'
GLOBAL CITEMDESC maroon
GLOBAL CITEMDESCTRUNC blue
GLOBAL YPIXELS 2000
GLOBAL HPOSDMAX 50
GLOBAL XPIXELS 1000

Deleting global macro variable using %symdel

You can remove all trace of a global macro variable by using %symdel. You put one or more global macro variable names after a "%symdel" call and it will delete those global macro variables. Here is my log again after I deleted the first three global macro variables listed.
 
619  %symdel fpatient hpos hposmingap;
620  %put _global_;
GLOBAL FITEMTEXT 'Arial'
GLOBAL HPOSDMEAN 35
GLOBAL HPOSMINFIGWIDTH 0.3
GLOBAL HSCALETEXT 0.8
GLOBAL DRAWBLOCKBOX 1
GLOBAL HPATIENT 2
GLOBAL CITEMTEXT maroon
GLOBAL CFIGURE BIYG
GLOBAL HBLOCKDESC 1
GLOBAL CBLOCKBOX maroon
GLOBAL HITEMDESC 0.8
GLOBAL USEARROWS 1
GLOBAL MAXUCLETTERS 23
GLOBAL CSTRIPE beige
GLOBAL HPOSDMIN 20
GLOBAL CBLOCKDESC black
GLOBAL CBLOCKDESCBG CXE0E0E0
GLOBAL HFIGURE 0.4
GLOBAL UNIFORMSCALE 1
GLOBAL CSCALE maroon
GLOBAL FITEMDESC 'Arial'
GLOBAL CPATIENT black
GLOBAL CPATIENTBG CXE0E0E0
GLOBAL HITEMTEXT 0.7
GLOBAL CBACK white
GLOBAL MAXMCLETTERS 29
GLOBAL VPOS 150
GLOBAL FBLOCKDESC 'Arial / Bold'
GLOBAL CITEMDESC maroon
GLOBAL CITEMDESCTRUNC blue
GLOBAL YPIXELS 2000
GLOBAL HPOSDMAX 50
GLOBAL XPIXELS 1000

Deleting ALL global macro variables

I have a macro named %globlist on this web site that lists all global macro variables. This is what I get in the log when I use it to display a list of all global macro variables.
 
598  %put %globlist;
FITEMTEXT HPOSDMEAN HPOSMINFIGWIDTH HSCALETEXT DRAWBLOCKBOX HPATIENT CITEMTEXT CFIGURE HBLOCKDESC
CBLOCKBOX HITEMDESC USEARROWS MAXUCLETTERS CSTRIPE HPOSDMIN CBLOCKDESC CBLOCKDESCBG HFIGURE
UNIFORMSCALE CSCALE FITEMDESC CPATIENT CPATIENTBG HITEMTEXT CBACK MAXMCLETTERS VPOS FBLOCKDESC
CITEMDESC CITEMDESCTRUNC YPIXELS HPOSDMAX XPIXELS

If I want to delete all global macro variables then I can use it with %symdel in this simple form: "%symdel %globlist;". This is what I get when I run it.
 
621  %symdel %globlist;
622  %put _global_;
 

You can see that all the global macro variables are gone!

Conclusion

You have seen how to list out all global macro variables and how to delete them singly or collectively.
 
 


 
 

Go back to the home page.

E-mail the macro and web site author.