如何在 UNIX 中分配 SAS Libref?

How to assign SAS Libref in UNIX?

我们一直在手动使用 EG 到 运行 SAS 作业,我正在尝试使用 shell 脚本自动化一些 SAS 过程。然而,在 EG 中使用 运行 的所有脚本现在都给出了一个错误,指出 Libref 未分配。

我如何assign/migrate 我们在 EG 中拥有的所有库到 UNIX 以供所有 SAS 脚本使用?

这是我用来测试的代码之一:

proc sql print;
connect using CPP_SRC as sql;                
create table RESULTS.dummy_tt2 as
select *
     from connection to sql(select * from bns_results.dummy_tt) ;
disconnect from sql;
quit;

我得到的错误是:

NOTE: SAS initialization used:
      real time           0.03 seconds
      cpu time            0.02 seconds

1          proc sql print;
2          connect using CPP_SRC as sql;
ERROR: Libref CPP_SRC is not assigned.
NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.
3          create table RESULTS.dummy_tt2 as
4          select *
5               from connection to sql(
6                          select * from bns_results.dummy_tt
7                          ) ;
NOTE: Statement not executed due to NOEXEC option.
8          disconnect from sql;
NOTE: Statement not executed due to NOEXEC option.
9          quit;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds

谢谢

在 EG 中,您的 CPP_SRC 库可能是在元数据中定义的。尝试 运行 这个 macrooptions mprint; 来提取你需要在 Unix 中重新创建库的 SAS 代码。

简而言之,您需要创建一个包含所有 libname 语句的新脚本,以便可以在您的 Unix 会话中分配它们。