sas - 在 SAS EG 中引发错误

标签 sas raiserror

我有一个 SAS EG 程序,它检查文件是否存在,如果文件存在则拒绝替换它。

发生这种情况时,我希望 SAS EG 在该程序上显示错误并在日志中显示有意义的自定义错误消息。而且我希望错误消息看起来与人们习惯在日志中看到的其他错误消息相同,以便他们注意它。

现在,我刚刚导入了一个以我的错误消息为名称的文件。这不是很好,因为它将文件未找到的消息附加到我要显示的消息中。

有什么方法可以声明存在错误并提供错误消息以放入日志

最佳答案

SAS 日志使用一种非常简单的方法来更改文本颜色:要在日志中显示的文本行中的第一个单词。您可以重新创建 ERROR , WARNING , 和 NOTE %put 中的消息和 put声明。

%put NOTE: This is a note;
%put WARNING: This is a warning;
%put ERROR: I AM ERROR;

例如,假设您想在缺少某个值时显示错误。
data have;
    input var;
    datalines;
1
.
2
3
.
;
run;

%put NOTE: Now checking for missing values...;

data _null_;
    set have;

    if(missing(var) ) then 
       put 'ERROR: A missing value for "var" was found at observation ' _N_;
run;

你也可以用宏来做到这一点,比如在某些检查步骤中创建一个标志,或者使用 &syserr自动宏变量。
%macro check;
    %let e  = 0;

    data _null_;
        set have;

        if(missing(var) ) then call symput('e', 1);
    run;

    %if(&e) %then %put ERROR: An error was found.;
%mend;

关于sas - 在 SAS EG 中引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37406052/

相关文章:

sql - TSQL Raiserror 语法不正确,遵循 MSD 指南

sql - 如何在 RAISERROR 方法中打印 DateTime 变量?

stored-procedures - 在 Sybase ASE 15.0 中处理从一个存储过程到另一个存储过程的错误

null - 如果 _N_ = 1 条件返回 true,即使在 SAS 中设置的数据集为空(零观察)

sas - 按特定条件替换 SAS 中的缺失值

sas - 如何在 SAS 中获取 PROC REPORT 以显示没有观察的 ACROSS 变量中的值?

sql - 您可以检测到INSERT-EXEC方案吗?

时间:2019-05-08 标签:c#asp.net : capture the raiserror() message from an SQL stored procedure

ide - SAS 语言的最佳非 SAS IDE 是什么?

sas - 如何在SAS中的字符字段中添加前导零?