Select 从 Netezza 数据库获取数据并插入 SQL 服务器数据库 (SSIS) 的语句
Select statement to grab data from a Netezza database and insert into a SQL Server database (SSIS)
我正在使用 SSIS 从 Netezza 数据库中获取数据并插入到 SQL 服务器数据库中。我有查询工作,前 2 个查询使用数据流任务从 Netezza 获取(基于 ID_NUMBER
)并插入到 SQL 服务器。
我有 15 个不同的 ID_NUMBER
反对 运行,我想一次 运行 他们一个,但我不想硬编码 ID_NUMBER
进入 SQL 声明每次我想 运行 一个不同的 ID_NUMBER
.
有没有一种方法可以遍历每个 ID_NUMBER
而无需在 SQL 语句中对它们进行硬编码?
使用 ODBC 源更新 1
根据您的评论,您正在使用 ODBC 源
在 ODBC 中您不能使用参数 (在 link 中提供了相同的逻辑),您必须将表达式分配给 属性 的 ODBC Source
- 单击数据流任务
- 在“属性”选项卡中 (按 F4 显示) 转到表达式
将类似的表达式赋给[ODBC Source].[SqlCommand]
属性
"SELECT * FROM MyTable WHERE [id] = " + (DT_WSTR,50)@[User::id]
单击 DataFlow 任务并将 Delay Validation
属性 更改为 True
使用执行SQL任务+foreach循环容器
- 您必须使用执行 SQL 语句并将 ID 存储在结果集中。
- 然后使用 For each 循环容器循环 ID
- 在 foreach 循环容器中添加一个数据流任务
- 在数据流任务中使用来自变量的SQL命令作为源并且变量必须构建为表达式
有关分步教程,您可以参考以下内容Link:
我正在使用 SSIS 从 Netezza 数据库中获取数据并插入到 SQL 服务器数据库中。我有查询工作,前 2 个查询使用数据流任务从 Netezza 获取(基于 ID_NUMBER
)并插入到 SQL 服务器。
我有 15 个不同的 ID_NUMBER
反对 运行,我想一次 运行 他们一个,但我不想硬编码 ID_NUMBER
进入 SQL 声明每次我想 运行 一个不同的 ID_NUMBER
.
有没有一种方法可以遍历每个 ID_NUMBER
而无需在 SQL 语句中对它们进行硬编码?
使用 ODBC 源更新 1
根据您的评论,您正在使用 ODBC 源
在 ODBC 中您不能使用参数 (在 link 中提供了相同的逻辑),您必须将表达式分配给 属性 的 ODBC Source
- 单击数据流任务
- 在“属性”选项卡中 (按 F4 显示) 转到表达式
将类似的表达式赋给
[ODBC Source].[SqlCommand]
属性"SELECT * FROM MyTable WHERE [id] = " + (DT_WSTR,50)@[User::id]
单击 DataFlow 任务并将
Delay Validation
属性 更改为True
使用执行SQL任务+foreach循环容器
- 您必须使用执行 SQL 语句并将 ID 存储在结果集中。
- 然后使用 For each 循环容器循环 ID
- 在 foreach 循环容器中添加一个数据流任务
- 在数据流任务中使用来自变量的SQL命令作为源并且变量必须构建为表达式
有关分步教程,您可以参考以下内容Link: