2017-08-29 55 views
1

有没有办法获得由SAS中的步骤(迭代)创建的所有输出(数据集/文件)的列表? 我试过使用自动变量,但是我所能得到的只是使用& syslast和& sysdsn变量创建的最后一个数据集。但是如果一个数据步骤创建了多个数据集呢?如何在不使用任何列表等关键字的情况下自动在SAS中获取他们的名称/详细信息?有没有办法? 请推荐! 谢谢!列出由SAS步骤创建的所有输出

回答

0

我不相信这是可能的。我能想到的唯一方法就是在数据步骤/迭代之后解析日志。

为此,您可以使用类似:

/* set up a fresh log prior to your iteration */ 
%let logloc=%sysfunc(pathname(work))/mylog.txt; 
proc printto log="&logloc" new; 
run; 

/* run your iteration */ 
data mystep with lots of output datasets; 
    set something; 
run; 

/* return to normal logging */ 
proc printto log=log; 
run; 

data _null_; 
    infile "&logloc"; 
    input; 
    if _infile_=:'data' then do; 
    /* perform log scanning */ 
    /* will likely need some complex logic to be robust!*/ 
    end; 
run; 
+0

谢谢Allan,我也在想同样的问题,并且正在尝试编写一个宏,这可能有助于使用systask提交另一个任务,这可以将日志一起追踪并生成所需的输出。 – Rhea

0

PROC SCAPROC将在日志中报告此,与你必须先运行进程,然后你会得到输出的警告。

+0

谢谢Reea,那不会解决我的目的。 – Rhea

+0

我会假设输出比最少的常规日志更容易解析 - 查找关键字DATASET OUTPUT。 – Reeza