从 SSIS 包访问 netezza 的系统目录视图不起作用

Posted

技术标签:

【中文标题】从 SSIS 包访问 netezza 的系统目录视图不起作用【英文标题】:Accessing system catalog views of netezza from SSIS package not working 【发布时间】:2020-03-25 17:56:06 【问题描述】:

我正在尝试从 SSIS 包 sql 任务向 netezza 数据库运行以下查询:

select t.table_name
from   tables      t,
       columns     c
where t.table_name like 'AB%'
 and  t.table_name = c.table_name
 and  c.column_name = 'XYZ'

查询可以在 Aginity 工作台等不同的编辑器上完美运行,但是 SSIS 包没有提供任何输出,并且它继续运行而没有任何结果。

我不确定 SSIS 是否存在与访问其他数据源的系统目录视图相关的限制。

如果有人遇到同样的问题,请提出建议。

问候, 呸

【问题讨论】:

为什么说“系统目录”?这些看起来像普通表......你得到什么错误? 存在系统表,在 netezza 世界中它被称为系统目录表/视图,在 SQL 中我们称之为系统表。我没有收到任何错误,它无限运行而没有任何结果,其他查询正在运行而没有任何问题。 我们手上有一个谜...... SSIS 中的查询是否完全相同? 顺便说一句:在这个例子中你不需要加入“表”....如果你不加入,它会起作用吗? 嗨,'Lars G Olsen',是的,SSIS 包中的查询完全相同(根据我的要求,只有列名和表名不同)。无论如何,如果我试图访问系统表,它不适用于 SQL 任务。 【参考方案1】:

感谢您抽出宝贵时间来解决我面临的问题。

作为替代解决方案,我正在使用脚本任务(C# 编程)并且相同的查询工作正常,没有任何问题。

但不确定为什么 SQL 任务不起作用。

所以我将此标记为解决方案。很高兴看到任何可以为 SQL 任务方法提供解决方案的响应,该方法易于支持(松散耦合)。

【讨论】:

确切的 where 子句可能是相关的。如果由于基数估计而针对“postgres”目录表的查询计划不同,则很可能会导致“无限”运行时......

以上是关于从 SSIS 包访问 netezza 的系统目录视图不起作用的主要内容,如果未能解决你的问题,请参考以下文章

选择语句从 Netezza 数据库中获取数据并插入 SQL Server 数据库 (SSIS)

Netezza 中的代理键 - SSIS 和 Netezza 序列

SSIS 包从文件系统运行

Netezza 从 SQL Server 加载表

SSIS - 序列化/锁定包

平面文件到 SSIS 中的 Netezza 加载