Hi,
I'm trying to write a txt file with sas. The file will contain a value of a macro variable and that mcro variable could contain double quote. Example
%let myvar=ORACLE execute error: ORA-01400: cannot insert NULL into ("blabla"."blabla"."blabla");
%let bodyfile=/mydir/mytxt.txt;
data _null_;
file "&bodyfile.";
put &myvar.;
run;
It does not work. What is wrong?
Any help will be appreciate.
Thanks
The combination of these two lines:
%let myvar=ORACLE execute error: ORA-01400: cannot insert NULL into ("blabla"."blabla"."blabla");
put &myvar.;
Will be:
put ORACLE execute error: ORA-01400: cannot insert NULL into ("blabla"."blabla"."blabla");
Which is clearly not what you want as it will look for variables named ORACE, EXECUTE, CANNOT etc.
The proper syntax you want is:
put "ORACLE execute error: ORA-01400: cannot insert NULL into (""blabla"".""blabla"".""blabla"")";
To get that use the QUOTE() function.
put %sysfunc(quote(&myvar)) ;
The combination of these two lines:
%let myvar=ORACLE execute error: ORA-01400: cannot insert NULL into ("blabla"."blabla"."blabla");
put &myvar.;
Will be:
put ORACLE execute error: ORA-01400: cannot insert NULL into ("blabla"."blabla"."blabla");
Which is clearly not what you want as it will look for variables named ORACE, EXECUTE, CANNOT etc.
The proper syntax you want is:
put "ORACLE execute error: ORA-01400: cannot insert NULL into (""blabla"".""blabla"".""blabla"")";
To get that use the QUOTE() function.
put %sysfunc(quote(&myvar)) ;
Thank Tom, it worked
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.