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

  1. 单击数据流任务
  2. 在“属性”选项卡中 (按 F4 显示) 转到表达式
  3. 将类似的表达式赋给[ODBC Source].[SqlCommand] 属性

    "SELECT * FROM MyTable WHERE [id] = " + (DT_WSTR,50)@[User::id]
    
  4. 单击 DataFlow 任务并将 Delay Validation 属性 更改为 True


使用执行SQL任务+foreach循环容器

  1. 您必须使用执行 SQL 语句并将 ID 存储在结果集中。
  2. 然后使用 For each 循环容器循环 ID
  3. 在 foreach 循环容器中添加一个数据流任务
  4. 在数据流任务中使用来自变量的SQL命令作为源并且变量必须构建为表达式

有关分步教程,您可以参考以下内容Link: