sql-server - Select 语句从 Netezza 数据库获取数据并将其插入 SQL Server 数据库 (SSIS)

标签 sql-server ssis etl netezza

我正在使用 SSIS 从 Netezza 数据库获取数据并将其插入到 SQL Server 数据库中。我的查询正在运行,前 2 个查询使用数据流任务从 Netezza 获取数据(基于 ID_NUMBER)并将其插入到 SQL Server 中。

我有 15 个不同的 ID_NUMBER 需要运行,我想一次运行一个,但我不想将 ID_NUMBER 硬编码到每次我想运行不同的 ID_NUMBER 时的 SQL 语句。

有没有办法可以循环遍历每个 ID_NUMBER 而无需在 SQL 语句中对它们进行硬编码?

最佳答案

使用 ODBC 源更新 1

根据您的评论,您正在使用 ODBC 源

在 ODBC 中,您不能使用参数(提供的链接中的逻辑相同),您必须将表达式分配给 ODBC 源 的 SqlCommand 属性

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

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


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

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

有关分步教程,您可以引用以下链接:

关于sql-server - Select 语句从 Netezza 数据库获取数据并将其插入 SQL Server 数据库 (SSIS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48479638/

相关文章:

sql-server - 如何将 SQL Server 数据库架构转储为人类可读和可打印的格式?

mysql - 从 MS SQL 导入 MYSQL 时 SSIS 包出错

sql-server - 使用 ssis 删除最后一行中的多余空间

python - Celery:异步检索上一个任务的部分结果

sql - 从多个字段中选择最大/最小值

sql-server - 使用 T-SQL 删除字段中的所有撇号

sql - 按日期搜索另一个表中的特定行

ssis - 在现有 SSIS 包中执行其他 SSIS 包

excel - ssis excel 源无法在设计时获取连接管理器

ssis - 我不在 SSIS 中使用临时表