输出列不匹配。源限定符中的用户定义SQL查询

输出列不匹配。源限定符中的用户定义SQL查询,sql,sql-server,relational-database,informatica,Sql,Sql Server,Relational Database,Informatica,我想我错过了一些明显的东西。我的任务是通过只更改源限定符部分来复制工作正常的映射 原始映射如下所示 首先,我不理解原始映射如何简单地从源限定符连接到表达式。 由于用户定义的查询,列名应该完全更改 例如 在我的新复制映射中,当我单击“验证”时,我的新源限定符给了我这个错误 奇怪的是,当我的查询实际输出5个独立的列时,它提到了“正好3个字段” 注意,我已经为不存在的列创建了o_BEADHEIGHT1和o_BEADHEIGHT2。这些列是由我的用户定义查询新创建的 SQ中的端口名是否与select

我想我错过了一些明显的东西。我的任务是通过只更改源限定符部分来复制工作正常的映射

原始映射如下所示

首先,我不理解原始映射如何简单地从源限定符连接到表达式。 由于用户定义的查询,列名应该完全更改

例如

在我的新复制映射中,当我单击“验证”时,我的新源限定符给了我这个错误

奇怪的是,当我的查询实际输出5个独立的列时,它提到了“正好3个字段”


注意,我已经为不存在的列创建了o_BEADHEIGHT1和o_BEADHEIGHT2。这些列是由我的用户定义查询新创建的

SQ中的端口名是否与select查询字段不匹配并不重要。只有港口的顺序才重要。此外,它只考虑与下一次转换连接的端口。

如果SQ中的端口名与select查询字段不匹配,则无所谓。只有港口的顺序才重要。此外,它只考虑与下一个转换连接的端口。

源限定符不是表达式转换,不能像表达式转换一样使用。例如,LOT_NO、MCD_ID和TEST_TS连接到输入和输出链接,这就是为什么您会得到错误“正好投影了3个字段”。源限定符中的字段应该连接到输入和输出链接,以将其视为有效端口。即使连接了5个源限定符输出端口,但连接了3个作为输入端口。所以要解决这个问题,

  • 将o_bedheight1和o_beadheight2从源连接到源限定符
  • 如果需要清洁,请移除PROCCD、MAT_类型

源限定符不是表达式转换,不能像表达式转换一样使用。例如,批次号、MCD ID和测试连接到输入和输出链接,这就是为什么会出现错误“正好投影3个字段”。源限定符中的字段应该连接到输入和输出链接,以将其视为有效端口。即使连接了5个源限定符输出端口,但连接了3个作为输入端口。所以要解决这个问题,

  • 将o_bedheight1和o_beadheight2从源连接到源限定符
  • 如果需要清洁,请移除PROCCD、MAT_类型

出现此问题的原因是源限定符中5个端口中有2个未与源定义链接。此验证仅考虑已与源定义链接的源限定符端口以及下一次转换

基金会是

1) SQL覆盖查询中选择的字段数应与源限定符中链接到下一次转换的端口数匹配。名称不需要相同,但顺序需要相同

有趣的是,Informatica将字段从SQL查询映射到源限定符输出链接,而不是源限定符端口。因此,SQL查询中的第一列映射到第一个链接,第二列映射到第二个链接,依此类推


2) 此外,源限定符转换中的所有端口都需要与源定义链接。您可以在源限定符转换中删除未使用的端口以避免混淆。

出现此问题的原因是源限定符中5个端口中有2个未与源定义链接。此验证仅将您与源定义链接的源限定符端口视为以及下一个转变

基金会是

1) SQL覆盖查询中选择的字段数应与源限定符中链接到下一次转换的端口数匹配。名称不需要相同,但顺序需要相同

有趣的是,Informatica将字段从SQL查询映射到源限定符输出链接,而不是源限定符端口。因此,SQL查询中的第一列映射到第一个链接,第二列映射到第二个链接,依此类推


2) 此外,源限定符转换中的所有端口都需要与源定义链接。您可以在源限定符转换中删除未使用的端口以避免混淆。

谢谢您的回复!关于我的例子,你能详细说明这一点吗?我有两个新列(由用户定义的查询生成),它们在源限定符上根本不存在。如何将这些连接到下一个表达式模块?您可以在源限定符中创建相应的两个端口。从源实例中的任何端口连接它们。感谢您的回复!关于我的例子,你能详细说明这一点吗?我有两个新列(由用户定义的查询生成),它们在源限定符上根本不存在。如何将这些连接到下一个表达式模块?您可以在源限定符中创建相应的两个端口。从源实例中的任何端口连接它们。
INSERT_DM to max(HVOLE.INSERT_DM)