0

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

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

我不能使用“带有结果集”的解决方法,因为它不是 SProc。所以我尝试了另一种解决方法,“SET FMTONLY ON/OFF”。

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

我该如何解决这个问题?

我无法更改其他临时表,基本上我无法更改查询。如果可能,我正在寻找 SSIS 解决方案,而不是 SQL 解决方案。谢谢。

4

1 回答 1

0

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

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

于 2016-09-01T13:03:09.790 回答