gpt4 book ai didi

SSIS - 使用 OLE DB 命令更新表

转载 作者:行者123 更新时间:2023-12-03 09:10:52 25 4
gpt4 key购买 nike

我需要在 SSIS 中翻译下一个 SQL 查询:(每个表都属于不同的源 - SQL Server 和 ORACLE)

update A
set
A.col1 = B.col1
A.col2 = B.col1
from
table A inner join table B B on A.col3 = Col3
where
A.col4 = value 1 and
A.col5 = value2 and
B.col4 = value 3;

如您所见,源和目标对应同一个源:表 A。这是我创建的工作流。

enter image description here

条件拆分后,我使用派生列来复制列 B.Col1 以在 OLE DB 命令上使用它来更新表 A 的列之后,我在 OLE DB 命令任务中编写了下一段查询:

update Table A
set
col1 = ?
col2 = ?

但是此时我有一个疑问,我是只更新从条件拆分中得到的子集的值,还是更新所有表 A。此外,更新查询的最后一部分引用了表B 在 OLE DB 命令任务中,我只能引用一个数据源。

说明:代码只是一个模式,所以我不需要更正它,这不是我的疑问(以防我犯了错误)。

我被要求在不修改 sql 查询的情况下进行翻译。

如果您需要了解更多信息以提供帮助,请询问,但要有礼貌。

问候

最佳答案

SQL 命令任务中的更新需要如下所示:

update Table A
set
col1 = ?
col2 = ?
WHERE SomeColumn = ?

其中“SomeColumn”是唯一标识行的列,您需要在数据流中具有“SomeColumn”的值,以便可以将其映射到 SQL 命令中的第三个参数。

如有必要(根据您的原始更新判断),您可以映射数据流中的多个列,实际上您可以在 SQL 命令中使用原始查询:

update A
set
col1 = ?
col2 = ?
where
? = value 1 and
? = value2 and
? = value 3;

关于SSIS - 使用 OLE DB 命令更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28368952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com