Returns an indication as to whether a macro variable is global in scope to the DATA step during DATA step execution.
Type: DATA step function


SYMGLOBL (argument)

Required Argument

can be one of the following items:
  • the name of a macro variable within quotation marks but without an ampersand
  • the name of a DATA step character variable, specified with no quotation marks, that contains a macro variable name
  • a character expression that constructs a macro variable name


The SYMGLOBL function searches enclosing scopes for the indicated macro variable and returns a value of 1 if the macro variable is found in the global symbol table, otherwise it returns a 0. See Scopes of Macro Variables for more information about the global and local symbol tables and macro variable scopes.

Example: Using SYMGLOBL Function

The following example of the %TEST macro contains the SYMGLOBL function:
 %global x;
       %macro test;
       %local y;
       data null;
          if symglobl("x") then put "x is GLOBAL";
                                 else put "x is not GLOBAL";
          if symglobl("y") then put "y is GLOBAL";
                                 else put "y is not GLOBAL";
          if symglobl("z") then put "z is GLOBAL";
                                 else put "z is not GLOBAL";
       %mend test;
In the previous example, executing the %TEST macro, which contains the SYMGLOBL function, writes the following output to the SAS log:
y is not GLOBAL
z is not GLOBAL