我有一个计划任务,应该每天运行一个SAS脚本。但是,它不成功,导致0x2
的结果。
.bat
文件只是:
"E:\Program Files\SAS\SASFoundation\9.2\Sas.exe" -sysin "C:\Documents and Settings\username\Desktop\myfolder\myscript.sas"
我已记录输出,它表明问题在于未成功分配库(并且只有1个库):
2 libname COOLDB ORACLE user=Laureate pw=mypass path=COOLDB schema=ODSMGR;
NOTE: Libref COOLDB was successfully assigned as follows:
Engine: ORACLE
Physical Name: COOLDB
3 %let prj = T:\DNA\New Orleans\username\SAS Export Folder;
4 libname dt "&prj.";
NOTE: Library DT does not exist.
其中包含第一行只是为了证明它一直运行到那一点。
这对我来说很奇怪,因为我100%确定知道正在引用的文件夹/库存在且具有适当的权限。
当我手动运行相同的脚本时,没问题:
3 %let prj = T:\DNA\New Orleans\username\SAS Export Folder;
4 libname dt "&prj.";
NOTE: Libref DT was successfully assigned as follows:
Engine: V9
Physical Name: T:\DNA\New Orleans\username\SAS Export Folder
答案 0 :(得分:4)
根据服务器的不同,某些系统不喜欢空格(就像SAS Export Folder
中那样),因此在这些情况下,您需要确保libname语句中的路径用引号括起来。 / p>
正如乔所指出的那样,不要在引号上加倍,所以将路径传递为:
%let prj=%str(T:\DNA\New Orleans\username\SAS Export Folder);
libname dt "&prj.";
-OR -
%let prj=%str("T:\DNA\New Orleans\username\SAS Export Folder");
libname dt &prj;