重用SAS proc sql中的连接

时间:2016-06-09 12:01:00

标签: sql stored-procedures sas

我已经以这种方式添加了远程库:

libname R rengine=db2 server=SYS1;

但是我无法在proc sql内使用它:

25   proc sql;
26   connect using R;
ERROR: SERVER= option, required for connection, not found.
27   quit;

我不想再次连接,因为我需要进行大量的存储过程调用。

本地SAS9.4,远程SAS9.1.3

1 个答案:

答案 0 :(得分:1)

我建议只保存在宏变量中创建libref所需的信息,然后在定义连接时重用它们。

%let rengine=db2;
%let server=sys1;
libname R rengine=&rengine server=&server;
proc sql ;
  connect to remote(server=&server dbms=&rengine);

或者您可以从保存在SASHELP.VLIBNAM中的元数据(或PROC SQL中的DICTIONARY.LIBNAMES)中创建宏变量。

proc sql ;
  select sysvalue into :server trimmed
    from dictionary.libnames
    where libname='R' and sysname='Accessed through server'
  ;
  select sysvalue into :rengine trimmed
    from dictionary.libnames
    where libname='R' and sysname="Server's engine"
  ;
  connect to remote(server=&server dbms=&rengine);