SAS SQL查询 - 链接到存储在UNIX文件夹中的SAS数据集

时间:2014-04-08 21:57:17

标签: sql oracle sas

我有一个SAS数据集,包含存储在我的UNIX文件夹中的CUSTOMER IDS(TABLE NAME IS CUSTOMERID)。我需要从CUSTOMER INFORMATION TABLE

获取有关所有这些CUSTOMER IDS的信息

我使用查询:

SELECT * FROM CUSTOMERINFORMATION
WHERE CUSTOMER_ID IN (select * from CUSTOMERID) 

我收到错误,因为TABLE CUSTOMER ID在UNIX上,而QUERY在ORACLE上运行(使用SAS)

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

假设您在传递SQL中运行SQL查询。在这种情况下,您无法直接访问SAS数据。您需要使用LIBNAME访问构造整个SQL查询,或者需要将CUSTOMERID表上载到UNIX。

IE,如果你有

proc sql;
connect to oracle (connection string);
select * from connection to oracle (
  select * from customerinformation where customerID in []
);
quit;

您可以将其转换为

libname ora oracle (connection string); *oracle or OLEDB or ODBC or etc.;
proc sql;
select * from ora.customerinformation where customerId in 
  (select * from unix.customerID);
quit;
libname ora clear;

或者您可以使用相同的libname方法将表加载到Oracle。

最后,如果CustomerID列表足够小,您可以将其存储在包含以逗号分隔的ID列表的宏变量中;只要不是单引号,宏文本就会解决。