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

时间:2019-05-06 17:25:25

标签: sql csv sas connection

我希望将通过“ 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.

1 个答案:

答案 0 :(得分:0)

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

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

位于Netezza框内 。您创建的名为dataname的数据集存在于运行SAS会话的工作库中。

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

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

Libname引擎

您通常可以按以下方式将connect to语句转换为libname语句:

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

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