11

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

我用

OPTIONS OBS=0 noreplace;

obs=0 选项指定从输入数据集中读取 0 个观测值,并且 NOREPLACE 告诉 SAS 不要覆盖具有相同名称之一的现有 SAS 数据集。如果您正在创建一个新的数据集,它将使用所有属性创建,但有 0 个观察值。(如果需要,请务必将选项重置为 Options Obs=max replace ; 当没有发现更多语法错误时)。

我会对任何其他技术感兴趣。谢谢

关于选项的解释来自这里。

4

3 回答 3

16

我在运行语句中使用取消选项。它将检查数据步骤的语法,然后终止它而不实际执行它。它是类似于noexecproc sql 中的选项的数据步骤。

data something;
<stuff here>
run cancel;

SUGI pdf中有更多详细信息

于 2009-05-07T18:37:45.460 回答
-1

我在我的 PC 上使用 SAS 和增强的彩色编码编辑器在我的 PC 上编写我的所有代码。然后我使用 SAS/CONNECT 在大型机上处理它。如果数据集在 DASD 上,我使用 SAS/CONNECT 和 Enterprise Guide 直接在大型机上运行代码(没有 JCL!)如果涉及数据磁带,因此必须批量运行,我使用 SAS/CONNECT 和 SAS ftp 引擎将代码发送到大型机批处理队列。我使用 SAS 电子邮件引擎将我的输出和日志通过电子邮件发送给我。我把ODS三明治放在我的代码中,让大型机生成一个WORD文档用于输出。我使用 PROC 下载将输出下载到我的服务器,以便我可以在 WORD 中打开它。

于 2009-08-12T18:09:40.663 回答
-1

该建议与语言无关。

I would argue that a preferable technique for catching syntax (and logic) errors is to perform a close read (or inspection) of your own code (which should catch the majority of syntax errors), followed by unit tests on small datasets (which will catch any remaining syntax errors, as well as many logic errors if your tests are well-designed).

I agree there's some worth to syntax checking in isolation, but to read and understand your code thoroughly enough before the first compile so that you know it will compile is a good ideal to strive for. Steve McConnell touches on this idea in Code Complete (see page 827 of the 2nd Edition).

P.S. You mentioned syntax highlighting in your original post; there are other editors (such as VIM) that will perform syntax highlighting on SAS files.

于 2009-08-12T18:37:51.417 回答