在 Citrix 机器上更改 SAS 工作目录

Changing SAS working directory on Citrix machine

我正在工作的 Citrix 机器上 运行ning SAS EG 7.1。我正在尝试做一个非常大的 sql 拉取并保持 运行 退出磁盘 space。我们的服务器驱动器有足够的存储空间,所以我假设暂时将工作目录切换到该驱动器上的文件夹将避免此错误?

错误显示“磁盘不足 space...文件已损坏。I/O 处理未完成。您可以执行 sql如果您向 WORK 库分配更多 space,则语句成功。“ 我似乎无权访问配置文件,我试图以编程方式更改它,但没有成功。我正在尝试将生成的数据帧保存到已经使用 LIBNAME 语句的服务器文件夹中,但我认为在此过程中在 WORK 中创建的临时文件太多而无法处理。有帮助吗?

我都试过了:

x 'cd "Q:\folder"';

data _null_;
   rc = system( 'cd "Q:\folder"' );
   if rc = 0 
      then putlog 'Command successful';
      else putlog 'Command failed';
run;

这些 运行 很好,但是在日志中它仍然说我的工作目录没有改变:

SYMBOLGEN:  Macro variable SASWORKLOCATION resolves to "C:\Users\user\AppData\Local\Temp\SEG5432\SAS Temporary 
            Files\citrixMachineDrive\Prc2/"

当前目录与文件引用等相关,但与您的 Work 或 Util 目录无关。

WORK 和 UTIL 只能在启动时设置,并且要么在 sas.exe 的参数中设置,要么在 sasv9.cfg 配置文件中设置。如何解决您的特定问题取决于 EG 是否连接到 SAS 服务器,或者它是否只是 运行 本地。如果是 运行 本地,您可以修改启动选项。如果它连接到服务器,您必须与您的 SAS 管理员联系。

但是,您不太可能希望将网络文件夹用作您的 WORK 文件夹。 SAS 期望高速磁盘直接连接到 WORK 机器;如果你设置成网络驱动器,你的性能会非常差。

另请注意,“C:”位于 SAS 服务器 运行 所在的机器上 - 它可能是同一台机器,如果您是 运行 SAS 本地(在 Citrix 上),但如果它是远程 SAS 服务器,则 C:\ 位于该服务器上。