从 SSIS 中的 OLE DB 源获取第二个数据集

Getting the second dataset from an OLE DB Source in SSIS

我需要从 DB1 读取数据并将它们写入另一个 DB2。 我使用带有 CTE 和临时 tables 的复杂查询,不,我不能将此查询放入 SProc。 我使用 OLE DB 源和 OLE DB 目标。

当我将查询作为 SQL 命令放入 OLEDBSource 时,我通常会抱怨无法确定元数据,因为 CTE 正在使用临时 table。

我无法使用 "with result sets" 解决方法,因为它不是 SProc。所以我尝试使用其他解决方法 "SET FMTONLY ON/OFF" 。

现在 OLE DB 源接受了我的查询,但它输出了两个数据集,第一个是空的,第二个是我需要的数据。 OLE DB 目标不写入一行,因为它只读取第一个结果集,即空结果集。

我该如何解决这个问题?

我无法更改其他内容中的温度 tables,基本上我无法更改查询。如果可能,我正在寻找 SSIS 解决方案,而不是 SQL 解决方案。 谢谢

对于 SSIS 解决方案,您不能使用 OLE DB 源。该组件只能访问第一个结果集。

您可以做的是使用脚本转换作为数据源,以通常的方式访问第二个结果集,并将其列发送到脚本的输出。