Sas 数据步骤视图和数据步骤:需要运行“;单独地;首先要让脚本正常工作

Sas 数据步骤视图和数据步骤:需要运行“;单独地;首先要让脚本正常工作,sas,dataview,datastep,Sas,Dataview,Datastep,这个问题来自另外两个关于发送批处理作业以及将相应脚本包装到宏中以进行进一步循环的问题(请参见此处: 我的代码如下所示: [1] I define some macro variables [2] I create a data step view [3] My data step uses the previous data step view to make some calculation [4] Export the results 第一次:当我运行+,然后运行[3]+[4]时。

这个问题来自另外两个关于发送批处理作业以及将相应脚本包装到宏中以进行进一步循环的问题(请参见此处:

我的代码如下所示:

[1] I define some macro variables
[2] I create a data step view
[3] My data step uses the previous data step view to make some calculation
[4] Export the results
第一次:当我运行+,然后运行[3]+[4]时。代码运行正常。我需要这样做一次,然后我就可以一起运行++[3]+[4](整个脚本)。但是,如果我不执行此“拆分”,则运行我的代码会给我以下错误消息:

116        data xtemp2;
117             set _v_&tables;
117             set _v_&tables;
                 ___
                 180
ERROR 180-322: Statement is not valid or it is used out of proper order.

118             by symbol date time;
                 __
                 180

ERROR 180-322: Statement is not valid or it is used out of proper order.

119             format itime rtime time12.;
.
.
.
以此类推,之后的每一行都显示相同的错误。请注意,第117行有两次错误,但我的代码只有一次


我试图在数据步骤之间设置一个睡眠功能,但问题是相同的。

正如@Joe指出的,这里没有足够的信息。但是,从您对之前的回答来看,问题似乎在这里:

73          '9:30:00't and '16:00:00't) and     mode = 12 and            EX =
73       ! 'N';           run;   *Screen data to find the trade before a set
73       ! time interval   data xtemp2;       set _v_&tables;       by symbol
                                           ___
                                           180
 73       ! date time;       format itime rtime time12.;       if
 ERROR 180-322: Statement is not valid or it is used out of proper order.
“要查找的屏幕数据…”注释没有以分号结尾,因此
data xtemp;
语句成为注释的结尾。因此
set
语句之前没有
data
语句


“一步一步”运行时是否运行了此注释?

如果宏变量以非典型方式引用,则有时很难解释错误。请尝试将宏变量解析包装为%unquote(&tables)。在进行故障排除时使用选项mprint。如果“tables”是表列表,则set语句与生成的语句不符。亲爱的Richard,非常感谢。我没有在变量周围设置引号,即%let tables=cq_1998。您的代码实际上有两个set语句,一个接一个吗?还是t日志只显示了同一行两次。SET语句无效的正常原因是因为DATA语句没有运行。程序中可能缺少更高级别的分号。在DATA步骤之前添加一个额外的“run;”语句以帮助您进行调试。实际上无法判断发生了什么。您必须包含mor关于你的代码(即所有代码)。亲爱的大家,Richard已经找到了解决方案。我在每个数据步骤之前添加了额外的“run;”语句,现在代码(作为一个整体运行)、包装在宏中的代码以及批处理作业都可以工作了!非常感谢!感谢Allan,解决方案与Richard建议的一样:添加额外的“run;”在每个数据步骤之前,它会突然工作!