Talend tMSSQLInput

Talend tMSSQLInput,talend,Talend,我使用tMSQLInput_1创建了一个Talend MS Sql作业,并插入了我自己的查询。下面是我的查询示例 if object_id('tempdb..#lang_guid')is not null drop table #lang_guid; create table #lang_guid( patient_guid varchar(255) ,accountid varchar(255)

我使用tMSQLInput_1创建了一个Talend MS Sql作业,并插入了我自己的查询。下面是我的查询示例

if  object_id('tempdb..#lang_guid')is not null 
    drop table #lang_guid;
  create table #lang_guid(
                patient_guid varchar(255)
               ,accountid varchar(255)
               );
   insert into #lang_guid

        select  c.customerid
               ,'0000001'
          from  customer c with(nolock)

  select patient_guid
        ,accountid

    from #lang_guid

我遇到的问题是查询从表中提取patient_guid,而不是我在临时表中动态创建的accountid。当我在Talend中运行作业时,它返回patient_guid,但我没有获取accountid的任何数据。以前是否有人在Talend中看到过此问题,如果是,我如何解决它。

您是否定义了相应的模式? 在Talend中,当使用输入组件(数据库或任何其他输入)时,必须通过单击tMSSQLInput的组件视图中的…,来定义模式

您的案例中应该有两个已定义的列


确保为每个输入定义了正确的talend模式。

在tMssqlInput中,如果单击Guess Schema,您可以看到从查询中检测到哪些列。

在tMssqlInput组件处检查模式(根据fetch查询定义)有两列。

单击查询框上方的猜测模式,或单击编辑模式并定义您的模式 或者您也可以查看下面提供的Talend文档
以下是您需要遵循的步骤:

  • 您需要编写精确的查询来获取所查找的字段, 在您的情况下,可能是
    从客户c选择患者guid、帐户ID和(nolock)
  • 然后,您必须单击guess schema来填充组件的元数据
  • 您可以通过单击组件视图中的编辑架构按钮来检查字段
  • 然后将其连接到
    tLogRow
    ,查看是否有您想要的数据
  • 另一方面,只需使用(nolock)从客户c编写查询
    Select*
    ->
    猜测模式
    ->
    将其与
    tLogRow
    连接,查看数据来自哪个字段
    ->
    ,然后添加
    tFilterColumn
    以选择字段并进一步处理数据

我希望我能提供帮助,请提供您的反馈。

您是否在工作流程中使用tLogRow组件查看您的tMSSqlInput组件输出/返回的数据?如果是,你能提供这个输出吗?