【发布时间】:2019-03-16 23:30:56
【问题描述】:
背景
我有一个每月运行的脚本,用于创建我的团队使用的数据集。该脚本在我的个人 UNIX 目录中生成数据集,然后我运行完整性检查并将数据集复制到我的团队可以访问的“公共”目录中。该脚本很稳定,因此无需再运行健全性检查。
我想做什么
- 从公用文件夹的先前版本的数据集中提取上次修改日期(工作正常)
- 用修改后的数据集名称更新 日期(面临问题)
- 将新创建的数据集移动/复制到公用文件夹(工作正常)
问题说明
尝试更改数据集名称时出现以下错误
错误:您无法将 COSTDATA.EMPL_CHAIN.DATA 重命名为 COSTDATA.EMPL_CHAIN_19SEP18.DATA,因为您在资源环境 IOM ROOT COMP ENV 中正在使用 COSTDATA.EMPL_CHAIN.DATA。
使用的代码
%let dsid2=%sysfunc(open(costdata.empl_chain));
%put ********&dsid2;
%let modte2=%sysfunc(attrn(&dsid2,modte),datetime7.);
%put &modte2;
%let rc=%sysfunc(close(&dsid2));
%put RC Value is &rc;
proc datasets library=costdata;
change empl_chain=empl_chain_&modte2;
run;
SAS 日志
29 %let dsid2=%sysfunc(open(costdata.empl_chain));
30 %put ********&dsid2;
********2
31 %let modte2=%sysfunc(attrn(&dsid2,modte),datetime7.);
32 %put &modte2;
19SEP18
33 %let rc=%sysfunc(close(&dsid2));
34 %put RC Value is &rc;
RC Value is 0
35
36 proc datasets library=costdata;
37 change empl_chain=empl_chain_&modte2;
38 run;
NOTE: Changing the name COSTDATA.EMPL_CHAIN to COSTDATA.EMPL_CHAIN_19SEP18 (memtype=DATA).
ERROR: You cannot rename COSTDATA.EMPL_CHAIN.DATA to COSTDATA.EMPL_CHAIN_19SEP18.DATA because COSTDATA.EMPL_CHAIN.DATA is in use by you in resource environment IOM ROOT COMP ENV.
39
其他有用信息:
我正在尝试对多个数据集执行类似的操作。如果 SAS EG 会话是新的,则重命名片段适用于第一个数据集。对于第二个数据集,它可以预见地失败。在 EG 中,工具 > 选项 > 数据 > 数据常规...按照 SAS 的建议,“添加到项目时自动打开数据”复选框处于未选中状态。
我还知道其他简单的技巧,例如在新数据步骤中声明具有正确名称的新数据集或在 proc 数据集中使用“交换”函数。不过我想知道,如果有任何解决上述错误的方法。
【问题讨论】:
-
您之前是否收到任何错误?当我尝试运行您的代码时,我会这样做。