如何使用PUT语句或其他任何方法在UNIX上批处理作业中调试SAS程序?

时间:2013-09-03 17:32:55

标签: sas

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

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

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

谢谢, 库马尔。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

的pT