【问题标题】:SAS SQL Query - linking to SAS data set stored on UNIX folderSAS SQL 查询 - 链接到存储在 UNIX 文件夹中的 SAS 数据集
【发布时间】:2014-04-08 21:57:16
【问题描述】:

我有一个 SAS 数据集,其中包含存储在我的 UNIX 文件夹 (TABLE NAME IS CUSTOMERID) 中的 CUSTOMER IDS。我需要从客户信息表中获取有关所有这些客户 ID 的信息

我使用查询:

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

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

有什么想法吗?

【问题讨论】:

    标签: sql oracle sas


    【解决方案1】:

    假设您在传递 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 列表的宏变量中;宏文本只要不在单引号中就会解析。

    【讨论】:

      猜你喜欢
      • 2015-08-12
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多