捕获由_ERROR_条件从输入语句生成的NOTE

时间:2018-09-21 13:36:06

标签: sas

下面是我的问题的简单表示。我不控制数据,也不控制所应用的格式(这是存储过程Web应用程序的后端服务)。我的目标是返回生成的错误消息-在这种情况下,它实际上是NOTE

data _null_;
input x 8.;
cards;
4 4
;
run;

以上内容生成:

  

注意:第61 1-8行中x的数据无效。规则:
  ---- + ---- 1 ---- + ---- 2 ---- + ---- 3 ---- + ---- 4 ---- + ---- 5 ---- + ---- 6 ---- + ---- 7 ---- + ---- 8 ---- + ---- 9 ---- + ---- 0 61 4 4 x =。 ERROR = 1 N = 1注意:使用的DATA语句(总计   处理时间):          实时0.00秒          cpu时间0.01秒

捕获错误状态(if _error_ ne 0 then do)很容易,但是我想做的就是返回NOTE的值-方便地告诉我们哪一列无效以及行号和列号。

如果没有日志扫描,是否有可能?我尝试sysmsg()syswarningtext都无济于事。

1 个答案:

答案 0 :(得分:2)

AFAIK,没有功能可在数据步骤运行时捕获数据步骤引起的注释。

由于您处于STP环境中,因此可以使用以下任一方法:

  • -altlog在会话启动时或
  • proc printto log=…包装步骤

然后进行扫描。