代码之家  ›  专栏  ›  技术社区  ›  Jay Corbett

在SAS中,捕获语法错误的好技术/选项是什么?

sas
  •  10
  • Jay Corbett  · 技术社区  · 17 年前

    在增强型编辑器中,着色可能会给您一个提示。但是,在大型机上,我不相信在编辑器中有任何可以帮助您的东西。

    我用

    OPTIONS OBS=0 noreplace;
    

    obs=0选项指定从输入中读取0个观测值 DataSet和Noreplace告诉SAS不要用 同名。如果您正在创建一个新的datastet,它将使用所有属性创建, 但没有观察到。(如果需要,请确保将选项重置为选项obs=max replace;如果找不到更多语法错误)。

    我对其他技术感兴趣。 谢谢

    有关选项的解释来自 here.

    3 回复  |  直到 13 年前
        1
  •  16
  •   cmjohns    17 年前

    我在run语句中使用cancel选项。它将检查数据步骤的语法,然后在不实际执行的情况下终止它。这是模拟 noexec 过程SQL中的选项。

    data something;
    <stuff here>
    run cancel;
    

    更多细节在这里 SUGI pdf

        2
  •  -1
  •   Joh    17 年前

    我把所有的代码都写在我的PC上,在我的PC上使用SAS和增强的彩色编码编辑器。然后我使用SAS/Connect在主机上处理它。如果数据集在DASD上,我使用SAS/Connect和Enterprise Guide直接在大型机上运行代码(不使用JCL!)如果涉及到数据磁带,因此必须进行批处理运行,那么我使用SAS/Connect和SAS FTP引擎将代码发送到主机批处理队列。我使用SAS电子邮件引擎将我的输出和日志发送回电子邮件。我把ODS三明治和代码放在一起,让主机生成一个用于输出的Word文档。我使用proc下载将输出下载到我的服务器,这样我就可以在Word中打开它。

        3
  •  -1
  •   Triad sou. DaveW    14 年前

    这个建议是语言不可知论。

    我认为捕获语法(和逻辑)错误的一种更好的技术是对您自己的代码执行近距离读取(或检查)(它应该捕获大多数语法错误),然后对小数据集执行单元测试(它将捕获任何剩余的语法错误,如果您的测试设计良好,还将捕获许多逻辑错误)。

    我同意孤立地进行语法检查是有一些价值的,但是在第一次编译之前要充分地阅读和理解您的代码,以便 知道 它将编译成一个很好的理想去争取。史蒂夫·麦康奈尔在《完整的代码》(见第二版第827页)中提到了这个想法。

    另外,您在原始文章中提到了语法突出显示;还有其他编辑器(比如vim)将在SAS文件上执行语法突出显示。

    推荐文章