Sas 从输入语句捕获由_ERROR uu条件生成的注释

Sas 从输入语句捕获由_ERROR uu条件生成的注释,sas,Sas,下面是我的问题的简单描述。我不控制数据,也不控制应用的格式(这是存储过程Web应用的后端服务)。我的目标是返回生成的错误消息-在本例中,它实际上是一个注释 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=。错误=1 N=1注:使用了数

下面是我的问题的简单描述。我不控制数据,也不控制应用的格式(这是存储过程Web应用的后端服务)。我的目标是返回生成的错误消息-在本例中,它实际上是一个
注释

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=。错误=1 N=1注:使用了数据语句(总计 处理时间): 实时0.00秒 cpu时间0.01秒

捕获错误状态非常简单(
如果出错,那么执行
),但我想做的是返回注释的值-它方便地告诉我们哪列无效,以及行号和列号


不扫描日志就可以这样做吗?我尝试了
sysmsg()
syswarningtext
,但没有效果。

好的,在数据步骤运行时,没有捕获数据步骤导致的注释的功能

由于您处于STP环境中,您可以使用:

  • -altlog
    在会话启动或
  • proc printto log=…

然后进行扫描。

我有一点希望,未记录的系统选项dsoptions=note2err可以帮助您将注释:转换为错误:,这样您就可以使用&syserrotext。但遗憾的是,即使打开了note2err,它仍然是一张便条。我想一定是这样的。下一个挑战-如何找出日志当前被重定向的位置!找到-由于Q(SAS-L),当前日志位置(如果重定向)位于
SYSPRINTTOLOG
系统选项中。