【问题标题】:How to debug a SAS program in batch job on UNIX using PUT statement or any other?如何在 UNIX 上使用 PUT 语句或任何其他语句在批处理作业中调试 SAS 程序?
【发布时间】:2014-08-11 22:18:32
【问题描述】:

我尝试在数据步中使用 /DEBUG 在 UNIX 上调试 SAS 批处理程序,但由于 /DEBUG 只能在交互模式下使用,它会引发错误。 错误信息: 错误:无法打开 X 显示。检查显示名称/服务器访问权限。

错误:无法初始化 DATA STEP 调试器环境。

然后我开始使用 put (all)(=); 运行 SAS 代码 但这会创建一个非常大的日志文件。 有没有其他方法可以调试 SAS 代码,在出现数据错误时不在日志中打印 ERRORN 变量。

谢谢, 库马尔。

【问题讨论】:

    标签: sas


    【解决方案1】:

    我刚刚遇到http://www2.sas.com/proceedings/sugi25/25/btu/25p052.pdf,它讨论了通过 /LDEBUG 开关在批处理模式下使用调试器。我不知道/认为/想象这是可能的。

    pT

    【讨论】:

      【解决方案2】:

      您当然可以智能调试;这意味着,找出可能出错的地方,并使用PUT 语句来查看这些变量。

      您不必将此限制在日志中;例如,我可以通过创建包含明显错误的 WHERE 语句的数据集来调试我的数据(在我所做的事情中,在我完成第一次迭代之后,数据比我的程序更可能是“错误的”)给定正确的数据,因此如果它包含一行,则表明存在问题 - 然后PROC PRINT 具有明显标题的数据集(“错误此有数据并且不应该因为 *REASON*”)。

      在解决数据步骤如何不适用于您的特定程序方面,您可以 PUT 在几个不同的地方进行一次迭代的日志记录 - 设置 OBS=1 然后运行(如果这是可能基于您的程序)。或者在数据步骤中的每一步输出到数据集,这样您就可以在数据集中而不是在日志中看到进度。

      【讨论】:

        猜你喜欢
        • 2018-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-18
        • 1970-01-01
        相关资源
        最近更新 更多