将字符串附加到SAS中的文本文件

时间:2018-03-15 04:44:31

标签: sas

我想在proc sql statment的开头和结尾追加一个文本文件,我试过如下

libname DXZ 'libpath';
%macro processlogger(msg);
filename logfile '../Processlog/processlog.txt';
data _null_;
file logfile; 
put "%superq(message)";
run;
%mend;

%processlogger ('Begin');
proc sql;
    select * from DZ.NoofDaysin_Reje /* Mispelled name */
    run;

%processlogger('End');

我似乎搞乱了宏变量,还有其他方法可以做到这一点,谢谢

2 个答案:

答案 0 :(得分:2)

如果您想使用数据步骤附加到文本文件,则需要将MOD关键字添加到FILE语句中。

如果要在数据步骤中打印可能包含引号和其他奇怪字符的宏变量的值,则最好使用symget()将值检索到datastep变量并打印出来。

确保引用您创建的宏变量msg而不是其他宏变量message

如果您不希望将引号包含在宏变量的值中,请不要添加它们。

%macro processlogger(msg);
data _null_;
  file '../Processlog/processlog.txt' mod; 
  length message $32767 ;
  message=symget('msg');
  put message ;
run;
%mend;

%processlogger(Starting at %sysfunc(datetime(),datetime24.3));
%processlogger(Ending at %sysfunc(datetime(),datetime24.3));

答案 1 :(得分:1)

您还可以使用PRINTTO将日志重定向到文本文件。您可以选择附加到原始文件或替换。示例here

com.myorg.requests