首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在本地执行rsubmit语句

在本地执行rsubmit语句
EN

Stack Overflow用户
提问于 2018-12-06 23:34:33
回答 2查看 513关注 0票数 0

我有许多打算在本地运行的.sas脚本,它们使用rsubmit-endrsubmit块将作业提交到远程服务器。当试图在远程服务器本身上运行该脚本时,SAS Enterprise Guide遇到以下语句并抱怨:

代码语言:javascript
复制
ERROR: Invalid or unspecified remote session ID. Set OPTIONS REMOTE=session_id.
NOTE: Subsequent lines will be ignored until ENDRSUBMIT.

有没有办法告诉SAS只需在本地执行代码块?

EN

回答 2

Stack Overflow用户

发布于 2018-12-06 23:59:25

您需要添加宏逻辑来确定是否需要提交RSUBMIT行。

您可以使用自动宏变量SYSHOSTNAME或SYSENV来确定您所在的系统,然后使用它来控制逻辑。

代码语言:javascript
复制
%if &syshostname = somevalue %then %do;
          rsubmit .....;
%end;

如果你使用的是SAS9.4 M5+,你现在可以在oepn代码中使用% If /%THEN。您必须做一些测试和研究,以确定您在每个系统中获得了什么价值,以及确切的“someValue”应该是什么。

票数 2
EN

Stack Overflow用户

发布于 2018-12-07 04:33:54

RSUBMIT还可以使用到本地服务器的连接。这通常是在实现多处理时完成的。你可以在网上看到很常见的例子,例如在Michelle Buchecker's Hands on Workshop

如果您想这样做,您可以设置特定于站点的连接脚本,在本地PC上连接脚本指示连接到Unix服务器,而在Unix服务器上设置连接脚本...仍然说要连接到那个Unix服务器。然后,只需确保您以相同的名称命名这些连接,以便它在本地机器上使用正确的名称,而不是在服务器上。

注意--这可能是也可能不是适合你的解决方案,这取决于你为什么要从服务器上运行它。如果您只是将其转换为总是从服务器运行,那么就去掉RSUBMITS。如果你想有时从一个地方运行它,有时从另一个地方运行,那么你是按照Reeza说的做(使用%if等来控制是否执行RSUBMIT ),还是这个答案取决于你代码的其余部分。如果修改为仅%if out事情会更简单,那么就这样做;如果允许rsubmit发生,就这样做(例如,如果您有大量使用just work目录来做事情的代码,等等)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53654751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档