在没有输入或输出的数据存储中运行数据库查询

时间:2014-10-15 20:45:29

标签: datastage

相对较新的数据存储,很可能是一个愚蠢的问题。

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

我无法弄清楚如何在没有输入或输出的情况下通过ODBC连接器运行查询。如果我没有将连接器链接到输入或输出,则使用'用法' ODBC连接器的部分不会出现。

是否可以使用'用法'部分出现没有链接输入/输出?如果没有,是否有另一种替代数据存储来完成我所描述的内容?

4 个答案:

答案 0 :(得分:3)

当数据来自链接时,DataStage仅写入数据库。

你能做的是:

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

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

答案 1 :(得分:2)

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

Row_generator - >变压器 - > copy_stage - > DB_connector

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

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

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

DB_connector - 在查询框中,提及删除语句为 "从#Schema中删除#。#Table#其中 1 = orchestrate.dummy "

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

答案 2 :(得分:1)

  1. 将ODBC连接器阶段连接到复制阶段

  2. 编写一个虚拟选择查询(Oracle,您可以使用"从双&#34中选择1作为虚拟;)

  3. 在具有数据类型

  4. 的列中指定虚拟列名称
  5. 在ODBC连接器阶段的SQL之前或之后插入删除查询

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

答案 3 :(得分:0)

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