SAS EG-检查是否可以锁定,否则使用其他表格

SAS EG-检查是否可以锁定,否则使用其他表格,sas,Sas,希望有人能帮我解释一下 我有一个使用下表的流程。后面有一个表(resource5),它的数据与resource4相同——基本上我可以使用任何一个表——老实说,我不知道为什么有两个表,但在这里它可能会派上用场 这两个表每小时不定期地按顺序更新两次,所以我无法安排在它们周围,更新每个表似乎需要大约5分钟 我总是需要最新的可用数据,而其他数据是实时的,所以我会非常频繁地(每15分钟)点击表格 是否有方法检查resource4是否可被我的进程锁定,如果可以,请继续运行数据步骤,如果没有,请点击resou

希望有人能帮我解释一下

我有一个使用下表的流程。后面有一个表(resource5),它的数据与resource4相同——基本上我可以使用任何一个表——老实说,我不知道为什么有两个表,但在这里它可能会派上用场

这两个表每小时不定期地按顺序更新两次,所以我无法安排在它们周围,更新每个表似乎需要大约5分钟

我总是需要最新的可用数据,而其他数据是实时的,所以我会非常频繁地(每15分钟)点击表格

是否有方法检查resource4是否可被我的进程锁定,如果可以,请继续运行数据步骤,如果没有,请点击resource5,如果没有,请退出整个进程,这样就不会有任何其他尝试运行(oracle的其他proc sql)了

只要work.resource4出现并且可用,那么一切都很好

我的代码所做的就是这样,一旦它投入使用,我就可以做任何事情而不必担心出现问题

data resource4;
set publprev.resource4;
run;
另外,我正在使用Windows中的SAS EG进行更改,然后通过一个包含所有代码的.SAS文件导出该进程,并通过crontab通过一个shell脚本(该脚本还创建了一个日志文件)从Unix SAS服务器上运行。也许不是安排这些事情的最有效的方法,但这就是我所拥有的


非常感谢。

您可以使用功能
open
检查表格是否可供您阅读(即复制到
工作

您必须使用宏为数据步骤提供可用数据集的名称

例如:

* NOTE: The DATA Step will automatically close resources it open()s;

%let RESOURCE=NONE AVAILABLE;

data _null_;
  if                  open ('publprev.resource4') ne 0 then do;
    call symput('RESOURCE', 'publprev.resource4');
    stop;
  end;

  if                  open ('publprev.resource5') ne 0 then do;
    call symput('RESOURCE', 'publprev.resource5');
  end;
run;

data work.resource;
  set &RESOURCE;
run;

感谢您对此的快速回复,Richard!我会给它一些测试,以确保它是好的,但到目前为止。删除,因为这实际上并不涉及EG在任何方式。我使用SAS EG创建脚本,但取决于你。