【问题标题】:Load Table in SAS to Netezza将 SAS 中的表加载到 Netezza
【发布时间】:2018-10-30 15:10:23
【问题描述】:

我有这个函数应该在 Netezza 中创建和加载一个表。

proc sql;
connect to odbc as nzCon (noprompt="Driver={NetezzaSQL}; server=actual_server; port=5486; database=myDB; username=xxxx; password=xxxx;");

create table results as select *  from connection to nzCon 

(SELECT * FROM SASTable WHERE ADDRESS LIKE '2%');

disconnect from nzCon;
quit;

这只是在 SAS 中创建表,因为当我在 Netezza 中刷新数据库时,没有创建表。我将如何修改它以便在 Netezza 中加载表?

谢谢!

【问题讨论】:

  • 当您使用 SQL pass through 时,您无法同时访问您的 SAS 表和服务器上的数据。代码按原样传递给服务器。
  • @Reeza 所以你说的只是因为我可以连接到 netezza 服务器,这并不意味着我可以将数据加载到服务器上的表中?为什么从 netezza 中提取信息而不是加载信息如此简单
  • 这很容易,在你的情况下它是“困难的”,因为你已经通过了。如果您通过 libname 连接,则与使用 SAS 数据集相同,至少在代码方面是这样。如果您的列或表名超过 32 个字符,或者您想直接在服务器上运行某些东西并且不想将代码转换为 SAS 但使用Netezza SQL。

标签: sas netezza


【解决方案1】:

您可以使用 libname 语句将 SAS 数据集移动到 Netezza。 @Reeza 试图说您可以在 netezza 服务器上找到 SAS 数据集。 Bulkload =yes 数据集选项将数据批量加载到 Netezza 表中,而不是逐行加载。

  libname net_lib netezza server=actual_server; port=5486; database=myDB; username=xxxx; password=xxxx;";


    proc sql;
  create table net_lib.results
  (bulkload=YES) 
   as SELECT * FROM SASTable WHERE ADDRESS LIKE '2%';
 quit;

【讨论】:

  • 我收到错误:The Netezza Engine cannot be found ...这是因为我没有到 Netezza 的 SAS/ACCESS 接口吗? support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/…
  • 尝试运行 proc setinit;跑;然后检查您是否有到 Netezza 的 SAS/ACCESS 接口
  • 我好像无权访问它。我会看看我能不能得到它并尝试一下。谢谢!
  • 通常也可以通过 ODBC 连接。
  • @Jim,不,我不是这个意思。您可以使用带有 ODBC 连接的 libname 来连接到 netezza,假设它支持 odbc 连接。
猜你喜欢
  • 2019-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 2016-07-26
  • 1970-01-01
相关资源
最近更新 更多