我试图传递由Call symputx创建的具有特殊字符(下划线)的宏变量,但是无法成功,这是我编写的代码。
data _null_;
call symputx('name', scan( "&table" ,2,'.')); run;
%let location= E:\drives\Monthly;
Proc export data=file
outfile= "&location.\&name..txt" dbms=dlm replace;
run;
当NAME宏变量没有特殊字符时,代码将完美执行,但是会显示身份验证失败或无法解析宏或任何其他错误。
我想掩盖特殊字符,我该怎么办?
所以这是详细信息:(从@Richard的评论中添加)
%let location=%nrstr(E:\Reports\Monthly\Updates (NEW)_UPPDATE_LIST);
%let Name = %nrstr(Table_20);
Proc export dbms=dlm
data=Newfile
replace
outfile= "&location=.\&Name..txt" ;
run;
当我在表名中使用下划线时,会出现此错误
ERROR: Insufficient authorization to access
E:\Reports\Monthly\Updates (NEW)_UPPDATE_LIST
我将不得不添加的一件事是我正在使用%include语句来运行程序。
答案 0 :(得分:0)
我想这个问题与目录许可有关。请参阅目录权限以确保您具有访问权限。