在SAS传递中使用外部数据

时间:2017-08-03 18:28:49

标签: sas proc-sql

我已经创建了数据集table_db1,如下所示:

proc sql;
CONNECT TO ORACLE (DB1 details);
CREATE TABLE table_db1 AS SELECT * FROM CONNECTION TO ORACLE 
(select * from db1.table where rownum<10);
quit;

我想使用此数据集来执行与另一个DB2的数据的连接。我更喜欢传递,因为它允许我使用WITH子句。下面的第一次尝试没有成功运行,因为传递在DB2中查找table_db1。请建议一个解决方法。

proc sql;
CONNECT TO ORACLE (DB2 details);
CREATE TABLE table_db1 AS SELECT * FROM CONNECTION TO ORACLE 
(select * from db2.table2 a inner join table_db1 b
on a.var_name = b.var_name
where rownum<10);
quit;

1 个答案:

答案 0 :(得分:2)

Passthrough意味着SAS只是将代码发送到外部DBMS。因此,如果您的外部DBMS可以连接到其他数据库,那么它可以(可能)在直通中执行。

一般来说,不,不,你不能以这种方式使用passthrough。如果您要请求SAS处理数据库连接,则需要使用Libname方法。