proc内容是截断输出数据集中的值。如何在输出数据集中获取完整值?

时间:2014-09-26 19:43:37

标签: sas

我试图将库中的所有数据集名称都放到数据集中。

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。

提前致谢, 萨姆。

2 个答案:

答案 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;