SAS - 在 proc SQL 中使用 proc 导入的 CSV(错误)

SAS - using proc imported CSV in proc SQL (error)

我希望将我通过 'proc import' 导入的 CSV 数据集与我从 proc sql 中提取的数据集连接起来。有没有办法将我的 proc 导入文件扔进 proc sql?反之亦然?

这是我所在的位置:

proc import datafile = 'filepath'
out = dataname
dbms = CSV
replace
;
run;

proc sql
connect to netezza as dbcon
(server="url" database=sandbox user=me password="&password.");

create table work as

select distinct * from connection to dbcon
(
select distinct a.*

from
dataname as a
left join
sqltable as b
on
a.number = b.number

);
quit;

我目前收到此错误消息,但我不确定我的语法哪里有误:

ERROR: CLI prepare error: ERROR:  relation does not exist database.ADMIN.dataname
SQL statement: select distinct a.*, b.* from dataname as a left join sqltable as b on a.number and b.number.

使用 CONNECT TO 语句连接到 Netezza 后,括号内的任何内容,例如:

select ... from connection to dbcon (...);
exec (...) by dbcon;

Netezza 盒子里。您创建的名为 dataname 的数据集存在于您的 SAS 会话 运行.

所在的工作库中

所以问题可以通过以下几种方式解决:

  • 上传数据到 Netezza
  • 使用 libname Netezza 引擎连接
  • 使用 SAS 中的 Insert into 在 Netezza 中创建 table

库名引擎

您通常可以将 connect to 语句翻译成 libname 语句,如下所示:

libname dbcon netezza server="url" database=sandbox user=me password="&password.";

如果您在 dbcon 库中创建 dataname,那么您的第二个查询应该可以工作,前提是您有权在 sandbox 数据库中创建 table。