【问题标题】:Run database query in datastage with no inputs or outputs在没有输入或输出的数据阶段运行数据库查询
【发布时间】:2014-10-15 20:45:28
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: datastage


    【解决方案1】:

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

    你可以做的是:

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

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

    【讨论】:

      【解决方案2】:

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

      Row_generator -> Transformer -> copy_stage -> DB_connector

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

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

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

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

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

      【讨论】:

        【解决方案3】:
        1. 将 ODBC 连接器阶段连接到复制阶段

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

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

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-10-31
            • 2015-11-26
            • 2013-03-07
            • 1970-01-01
            相关资源
            最近更新 更多