我试图将库中的所有数据集名称都放到数据集中。
proc datasets library=LIB1 memtype=data ;
contents data=_all_ noprint out=Datasets_in_Lib1(keep=memname) ;
run;
最终数据集(Datasets_in_Lib1)具有LIB1中的所有数据集名称,但名称被截断为6个字符。有没有办法获取没有截断的数据集的全名。 例如:如果数据集名称为x123456789,则Datasets_in_Lib1将仅包含x12345。
提前致谢, 萨姆。
答案 0 :(得分:1)
同意评论,在9.3 memname中是32美元。我不认为有一个SAS版本的数据集名称限制为6个字符。在v7中,它们从8个字符变为32个字符(我认为)。
这是运行代码的日志,显示它在9.3中的工作原理
51 data work.x123456789;
52 x=1;
53 run;
NOTE: The data set WORK.X123456789 has 1 observations and 1 variables.
54
55 proc datasets library=work memtype=data nolist;
56 contents data=_all_ noprint out=Datasets_in_Lib1(keep=memname) ;
57 run;
NOTE: The data set WORK.DATASETS_IN_LIB1 has 1 observations and 1 variables.
58
59 data _null_;
60 set Datasets_in_Lib1;
61 put _all_;
62 run;
MEMNAME=X123456789 _ERROR_=0 _N_=1
NOTE: There were 1 observations read from the data set WORK.DATASETS_IN_LIB1.
答案 1 :(得分:0)
您还可以查询sashelp.vtable以获取数据集列表:
proc sql;
create table mem_list as
select memname
from sashelp.vtable
where libname='LIB1' and memtype='DATA';
quit;