SAS列出所有文件名问题(对某些文件的授权但不是全部)
SAS list all file names issue (authorization to some files but not all)
我正在尝试使用以下代码列出文件夹中带有前缀的所有文件名,并使用文件名调用名为 CALCU 的函数:
proc contents data=&libref.._all_ noprint out=contents; run;
data _null_;
set contents;
by memname;
if first.memname ;
if upcase(memname) =: %upcase("&prefix");
call execute(cats('%nrstr(%CALCU)(',memname,')'));
run;
当我拥有对目录中所有文件的完全授权访问权限时,代码工作正常。但是现在我发现我实际上无法访问某些具有某些前缀的文件(幸运的是,我实际上不需要那些我无权访问的文件)。
然而,SAS 只是不断抛出像
这样的错误
ERROR: User does not have appropriate authorization level for file
TAQ_CT.CTM_20120222.DATA.
尽管这不是我想要的文件。
我想知道如何跳过目录中的某些文件?
我已尝试删除除以下代码行以外的所有内容:
proc contents data=&libref.._all_ noprint out=contents; run;
不过,当我无法访问所有文件时,似乎我什至无法正确读取内容(SAS 一直在我无权访问的文件上抛出错误)。
我没有办法对此进行测试,但请尝试使用 SASHELP.VMEMBER
而不是 PROC CONTENTS
data _null_;
set SASHELP.VMEMBER(where=(libname=upcase("&libref") and memtype = "DATA"));
if upcase(memname) =: %upcase("&prefix");
call execute(cats('%nrstr(%CALCU)(',memname,')'));
run;
这是一个系统视图,列出了目录中的所有 SAS 文件。这样,您只尝试访问您想要的那些。
我正在尝试使用以下代码列出文件夹中带有前缀的所有文件名,并使用文件名调用名为 CALCU 的函数:
proc contents data=&libref.._all_ noprint out=contents; run;
data _null_;
set contents;
by memname;
if first.memname ;
if upcase(memname) =: %upcase("&prefix");
call execute(cats('%nrstr(%CALCU)(',memname,')'));
run;
当我拥有对目录中所有文件的完全授权访问权限时,代码工作正常。但是现在我发现我实际上无法访问某些具有某些前缀的文件(幸运的是,我实际上不需要那些我无权访问的文件)。
然而,SAS 只是不断抛出像
这样的错误ERROR: User does not have appropriate authorization level for file
TAQ_CT.CTM_20120222.DATA.
尽管这不是我想要的文件。
我想知道如何跳过目录中的某些文件?
我已尝试删除除以下代码行以外的所有内容:
proc contents data=&libref.._all_ noprint out=contents; run;
不过,当我无法访问所有文件时,似乎我什至无法正确读取内容(SAS 一直在我无权访问的文件上抛出错误)。
我没有办法对此进行测试,但请尝试使用 SASHELP.VMEMBER
而不是 PROC CONTENTS
data _null_;
set SASHELP.VMEMBER(where=(libname=upcase("&libref") and memtype = "DATA"));
if upcase(memname) =: %upcase("&prefix");
call execute(cats('%nrstr(%CALCU)(',memname,')'));
run;
这是一个系统视图,列出了目录中的所有 SAS 文件。这样,您只尝试访问您想要的那些。