2017-08-29 72 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