sas获取work库所有数据集名字
时间: 2023-08-04 07:06:44 浏览: 195
要获取 SAS 的 Work 库中所有数据集的名称,可以使用 SAS 的元数据查询功能。下面是一种获取 Work 库中所有数据集名称的方法:
```
/* 创建元数据查询对象 */
%let rc = %sysfunc(metadata_init());
/* 设置查询条件 */
%let options = %str(novalidate);
/* 定义查询语句 */
%let query = %str(
SELECT memname
FROM sashelp.vtable
WHERE libname='WORK' AND memtype='DATA'
);
/* 执行查询 */
%let rc = %sysfunc(metadata_query(&options, &query));
/* 获取查询结果 */
%let nobs = %sysfunc(metadata_nobjs(&rc));
%do i = 1 %to &nobs;
%let objtype = %sysfunc(metadata_getattr(TYPE, &rc, &i));
%if &objtype = DATA %then %do;
%let objname = %sysfunc(metadata_getattr(NAME, &rc, &i));
%put &objname;
%end;
%end;
/* 释放元数据查询对象 */
%let rc = %sysfunc(metadata_term(&rc));
```
这个代码使用 SAS 的元数据查询功能,创建了一个查询对象并设置了查询条件。查询语句指定了要查询 Work 库中的所有数据集名称。执行查询后,使用 "metadata_nobjs" 函数获取查询结果的数量,然后使用 "metadata_getattr" 函数逐个获取每一个数据集的名称并输出。最后,释放查询对象以释放资源。
阅读全文