RESOLVE resolves the value of a text expression during execution of a DATA step or SCL program, whereas a macro variable reference resolves when a DATA step is being constructed or an SCL program is being compiled. For this reason, the resolved value of a macro variable reference is constant during execution of a DATA step or SCL program. However, RESOLVE can return a different value for a text expression in each iteration of the program.
RESOLVE accepts a wider variety of arguments than the SYMGET function accepts. SYMGET resolves only a single macro variable but RESOLVE resolves any macro expression. Using RESOLVE might result in the execution of macros and resolution of more than one macro variable.
When a macro variable value contains an additional macro variable reference, RESOLVE attempts to resolve the reference, but SYMGET does not.
If argument references a nonexistent macro variable, RESOLVE returns the unresolved reference, whereas SYMGET returns a missing value.
Because of its greater flexibility, RESOLVE requires slightly more computer resources than SYMGET.