I found this code snippet in our code base:
data _null;
file aaa;
filename = 'xxx_123' ;
run;
%include aaa;
filename aaa clear;
Will this run the macro xxx_123.sas and store the output in aaa and then clear it
No. Here is what it will do.
1) It will make a dataset name _NULL with one observation and one variable, FILENAME, with the value 'xxx_123'.
If the fileref AAA was defined before the data step then :
2A) it will be made empty since the data step writes nothing into it.
3A) it will then try to include the empty file as code and so nothing will happen.
4A) it will undefine the fileref AAA.
Otherwise
2B) it will create an empty file named aaa.dat in the current working directory.
3B) it will try to include SAS statements from a file named aaa.sas. Effect will vary based on whether such a file exists or not.
4B) it will get a warning trying to undefine the fileref AAA.
No. Here is what it will do.
1) It will make a dataset name _NULL with one observation and one variable, FILENAME, with the value 'xxx_123'.
If the fileref AAA was defined before the data step then :
2A) it will be made empty since the data step writes nothing into it.
3A) it will then try to include the empty file as code and so nothing will happen.
4A) it will undefine the fileref AAA.
Otherwise
2B) it will create an empty file named aaa.dat in the current working directory.
3B) it will try to include SAS statements from a file named aaa.sas. Effect will vary based on whether such a file exists or not.
4B) it will get a warning trying to undefine the fileref AAA.
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
Check out this tutorial series to learn how to build your own steps in SAS Studio.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.