对SAS批处理作业的授权不足

时间:2015-06-23 08:42:17

标签: sas

今天我遇到了问题并解决了,但我不太清楚为什么会出现这个问题。 我们有一个SAS批处理工作:

/path_to_script/sasbatch.sh -log /some_path/Logs/replication_#Y.#m.#d_#H.#M.#s.log -batch -noterminal -logparm "rollover=session" -sysin /another_path/macros/replication.sas

今天这份工作失误了:

ERROR: Insufficient authorization to access /sas_path/sasconfig/Lev1/SASApp/replication.lst.

我发现错误的原因是NOPRINT语句没有出现在PROC SQL个语句中。将NOPRINT嵌入PROC SQL标头后,它正常工作。

那么NOPRINT在SAS工作中的作用是什么?为什么会导致错误呢?

2 个答案:

答案 0 :(得分:3)

错误诊断

您尚未在SAS批处理作业中设置-print选项,因此它选择写入默认目录。提交作业的用户对此目录没有写入权限:

  

/ sas_path / sasconfig / LEV1 / SASApp

NOPRINT选项&典型用途

NOPRINT语句中的PROC SQL选项会抑制SQL过程的任何输出。您必须在SQL过程中生成一个产生输出的语句,通常类似于:

select col1 into :c1
from table;

它不必要地产生输出,因为它创建了一个名为c1的宏变量,可以在程序的其他地方使用。

<强>分辨率

设置NOPRINT,或将批处理作业中的-print选项设置为可写目录,并根据需要查看/删除输出文件。

答案 1 :(得分:1)

NOPRINT阻止将任何内容写入lst文件。 lst文件是输出窗口的批处理等价物。将在交互式会话中写入输出窗口的任何内容(因为ODS LISTING处于活动状态)将写入lst文件。我总是使用NOPRINT

运行批处理作业