如何产生一个数据集来记录某个逻辑库(对应物理路径)的全部数据文件的详细信息,包括数据即名称、变量个数、文件大小以及最后修改时刻?
首先,可以使用proc datasets从日志窗口中查看这些详细信息。执行代码如下:
proc datasets library=sasuser mt=data details;
run;
quit;
可以在日志窗口中看到这些内容:
1066 proc datasets library=sasuser mt=data details;
Directory
Libref SASUSER
Engine V9
Physical Name D:\Documents\My SAS Files\9.1
File Name D:\Documents\My SAS Files\9.1
Member Obs, Entries File
# Name Type or Indexes Vars Label Size Last Modified
1 CNTAINER DATA 3 4 5120 28Sep12:16:47:27
2 CUSTDET1 DATA 1966 49 771072 06Jan06:22:41:24
3 EISMBRP DATA 0 4 25600 29Jan06:10:08:18
EISMBRP INDEX 3 17408 29Jan06:10:08:18
4 LOYALTY DATA 1977 4 82944 30Sep12:21:22:22
5 MRRGSTRY DATA 0 6 9216 29Jan06:10:08:18
6 PURCHASE_DETAILS DATA 1976 20 345088 30Sep12:20:57:30
7 SASMBC DATA 0 3 Columns Database 37888 27Sep12:21:27:47
SASMBC INDEX 2 13312 27Sep12:21:27:47
8 STAFF DATA 10 5 5120 18Nov12:17:13:51
9 SURVEY_RESULTS DATA 1976 18 308224 30Sep12:20:57:30
1067 run;
1068 quit;
NOTE: PROCEDURE DATASETS used (Total process time):
real time 0.87 seconds
cpu time 0.00 seconds
然后,借助于ODS模块将“所见的”变成“所得的”。
/* Use ODS to save them to a new data set:*/
ods output members=dir_urlib;
proc datasets library=sasuser mt=data details;
run;
quit;
ods output close;
proc print noobs;
run;
那么,在日OUTPUT窗口可以看到新产生的数据集的内容:
Mem File
Num Name Type Obs Vars Label Size LastModified
1 CNTAINER DATA 3 4 5120 28Sep12:16:47:27
2 CUSTDET1 DATA 1966 49 771072 06Jan06:22:41:24
3 EISMBRP DATA 0 4 25600 29Jan06:10:08:18
. EISMBRP INDEX 3 Z 17408 29Jan06:10:08:18
4 LOYALTY DATA 1977 4 82944 30Sep12:21:22:22
5 MRRGSTRY DATA 0 6 9216 29Jan06:10:08:18
6 PURCHASE_DETAILS DATA 1976 20 345088 30Sep12:20:57:30
7 SASMBC DATA 0 3 Columns Database 37888 27Sep12:21:27:47
. SASMBC INDEX 2 Z 13312 27Sep12:21:27:47
8 STAFF DATA 10 5 5120 18Nov12:17:13:51
9 SURVEY_RESULTS DATA 1976 18 308224 30Sep12:20:57:30