SAS ODS查询/声明与其输出

时间:2017-11-30 06:46:48

标签: sas sas-ods

SAS EG

有什么方法可以使用SAS ODS打印用于获取输出的查询/语句以及输出?

假设,

ods pdf file=pdfile;
proc sql;
select a.*
from tab1 a inner join tab2 b
on a.something=b.something
where <>
having <>;
quit;
ods _all_ close;

这将打印从上述查询生成的 OUTPUT 。但是我也可以通过ods pdf和输出打印查询吗?

1 个答案:

答案 0 :(得分:1)

没有自动方式来重定向我所知道的日志。

然而,有几种方法可以得到你想要的东西。

首先,如果您能够使用Jupytr,SAS有插件可以使用SAS,然后您只需在笔记本中写入并运行代码,结果就会随您的代码一起显示。有关详细信息,请参阅Chris Hemedinger's blog post on the subject

其次,SAS Studio将支持笔记本式界面,可能会在明年晚些时候发布下一个主要版本(我相信5.0版本)。所以类似地,你会把你的代码放在同一个窗口中。

最后,第三个选项是像Reeza建议的那样 - 写入日志文件,然后将其打印到输出。它很乱,但可能。

以下是后者的一个例子。我没有做任何努力来清理它,请注意,您可能想要删除与PROC PRINTTO和otehr注释相关的日志记录(或打开NONOTE)。

ods pdf file="c:\temp\test.pdf";
filename logfile temp;
proc printto log=logfile;
run;
proc sql;
select * from sashelp.class;
quit;
proc printto;
run;
data _null_;
  infile logfile;
  input @1 @;
  call execute(cats('ods text="',trim(_infile_),'";'));
run;

ods _all_ close;