2

datastage 相对较新,很可能是一个愚蠢的问题。

从数据阶段,我想对 SQL Server 数据库运行数据库查询。该查询是带有硬编码 WHERE 子句的删除查询(不是我的决定)。

我想不通的是如何在没有输入或输出的情况下通过 ODBC 连接器运行查询。如果我没有将连接器链接到输入或输出,则不会出现 ODBC 连接器的“使用”部分。

是否可以在不链接输入/输出的情况下显示“使用”部分?如果没有,在 datastage 中是否有另一种选择来完成我所描述的?

4

4 回答 4

3

DataStage 仅在数据来自链接时才写入数据库。

你可以做的是:

  • 在您的作业中放置一个行生成器阶段并将其配置为生成一行(一列)
  • 将该阶段链接到您的 ODBC 数据库目标
  • 将您的静态查询放在链接上

您不必在生成的行上使用数据,只需在目标上触发操作即可。

于 2014-10-16T13:08:40.617 回答
2

我遇到了同样的问题,现在通过设计如下的工作来实现它,

Row_generator -> Transformer -> copy_stage -> DB_connector

Row_generator - 定义要生成的列(不需要映射到变压器阶段的输出)

Transformer - 添加一个输出列,说“dummy”并将其硬编码为“1”,并且应该取消选中 RCP。

copy_stage - 不要将任何内容映射到输出链接,只需保持启用 RCP即可。

DB_connector - 在查询框中,将删除语句提及为“delete from #Schema#.#Table# where 1=orchestrate.dummy

在上述查询中,我们使用的条件 1=orchestrate.dummy始终为 TRUE。让我知道它是否有效!干杯。

于 2016-06-17T20:32:42.313 回答
1
  1. 将 ODBC 连接器阶段连接到复制阶段

  2. 编写一个虚拟选择查询(Oracle,您可以使用“select 1 as dummy from dual”)

  3. 在具有数据类型的列中给出虚拟 col 名称

  4. 在 ODBC 连接器阶段的 SQL 之前或之后插入您的删除查询

我有相同要求的生产作业。应该像葡萄酒一样顺畅:)

于 2016-06-25T18:17:47.840 回答
0

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '[Security No]、Customer.DOB、Customer.IDNo、Customer.ContactNumber、Customer.cnu' 附近使用正确的语法

于 2016-06-17T19:03:54.703 回答