Run the libname statement with the MPRINT and SYMBOLGEN options turned on. It will show what the log is trying to submit and where the error is.
It's possible you need a period (.) after the macro variable to force it to resolve properly.
Libname Sample "&samplePath.\&CheckFolder.";
Run the libname statement with the MPRINT and SYMBOLGEN options turned on. It will show what the log is trying to submit and where the error is.
It's possible you need a period (.) after the macro variable to force it to resolve properly.
Libname Sample "&samplePath.\&CheckFolder.";
Your tests clearly narrow the problem down to the value of &CheckFolder.
One of the red flags is that &CheckFolder gets created by SQL into. It's possible that SQL performs a numeric to character conversion when assigning the value. That might introduce leading blanks, or possibly conversion to scientific notation. Check what you are getting:
%put **&CheckFolder**;
SAS character variables are fixed length fields, so make sure to use the TRIMMED option on the INTO clause.
select charvar_or_function
into :CheckFolder trimmed
from ....
Or add a step to remove the trailing spaces.
%let CheckFolder=&CheckFolder;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.