【发布时间】:2015-09-25 13:09:35
【问题描述】:
我有一个 SAS-Storedprocess,它通过 webout 进行一些 html 输出。 在某些情况下(例如:没有可用数据)我想放置一条自定义错误消息并阻止该进程进一步执行。
我有一个到目前为止运行良好的 makro 解决方案:
%if &varnobs = 0 %then %do;
data _null_;
file _webout;
put " &text1";
put " &text2";
put " &text3";
run;
ENDSAS;
%end;
但现在我被告知,我们公司不允许使用 ENDSAS,因为它会产生各种副作用,并且不仅可以停止流程,还可以停止整个会话。
现在我正在寻找替代方案,我也尝试了带有多个选项的 abort 语句,但存在一个问题,即 abort 在日志中放置一条错误消息,因此不会显示我的自定义消息,而是显示 sas 错误信息。在中止文档中还声明了(abort),中止不仅会停止进程,还会停止会话。
我知道有诸如 if-else 或 goto 之类的编程替代方法来代替停止进程,但这不是针对我的特定问题的选项。
所以问题是:
如何在执行期间停止存储过程,而不停止会话,没有其他副作用并且没有 SAS 错误消息?
【问题讨论】:
标签: sas