When entering macro variables on the submit
statement in LUA, if the value is a string, it must be quoted!
For instance:
%let mapping_table=work.config;
proc lua restart;
submit "mapping_table='&mapping_table'" ; -- note single quotes
print(mapping_table)
endsubmit;
run;
This makes sense, as (unlike in sas macro) lua variables have types - so strings must be quoted, else they will be interpreted as variable names.
That said - a more robust method for retrieving macro variables is to use sas.symget()
, eg:
%let mapping_table=work.config;
proc lua restart;
submit;
mapping_table = sas.symget('mapping_table')
print(mapping_table)
endsubmit;
run;
This approach will more effectively deal with nested quotes, and long values.
Documentation: https://documentation.sas.com/?docsetId=proc&docsetTarget=n1e6uqw3idxgzon10b61cg120h9c.htm&docsetVersion=9.4&locale=en