在biml生成的Merge Join组件上,我收到以下错误。 当双击SSIS中的合并连接组件时,我在SSIS xml代码中发现它添加了SortKeyPosition =" 1"在OutputColumn部分中。我之后能够成功执行包。 如何在此特定部分OutputColumn中为biml设置SortKeyPosition。 下面是错误和我的biml代码。
[SSIS.Pipeline]警告:MERGEJOIN_wcs_customer_order_line.Outputs [输出]的IsSorted属性设置为TRUE,但其所有输出列都是' SortKeyPositions设置为零。 [MERGEJOIN_wcs_customer_order_line [130]]错误:SortKeyPosition值为0的列无效。它应该是1。 [MERGEJOIN_wcs_customer_order_line [130]]错误:SortKeyPosition值为0的列无效。它应该是2。 [SSIS.Pipeline]错误:" MERGEJOIN_wcs_customer_order_line"验证失败并返回验证状态" VS_NEEDSNEWMETADATA"。
<MergeJoin Name="MERGEJOIN_<#=table.Name#>" JoinType="LeftOuterJoin">
<LeftInputPath OutputPathName="SORT_<#=table.Name#>.Output">
<Columns>
<#
indexSortKey=1;
foreach(var column in table.Columns) {
if (column.GetTag("ColumnRole")=="BK")
{
#>
<Column SourceColumn="DC_<#=column.Name#>" SortKeyPosition="<#=indexSortKey.ToString()#>" TargetColumn="STG_<#=column.Name#>" />
<#
indexSortKey++;
}
else
{#>
<Column SourceColumn="DC_<#=column.Name#>" TargetColumn="STG_<#=column.Name#>"/>
<#}
} #>
</Columns>
</LeftInputPath>
<RightInputPath OutputPathName="OLEDBD_ODS_<#=table.Name#>.Output">
<Columns>
<#
indexSortKey=1;
foreach(var column in table.Columns) {
if (column.GetTag("ColumnRole")=="BK")
{#>
<Column SourceColumn="<#=column.Name#>" SortKeyPosition="<#=indexSortKey.ToString()#>" TargetColumn="ODS_<#=column.Name#>" />
<#
indexSortKey++;
}
else
{#>
<Column SourceColumn="<#=column.Name#>" TargetColumn="ODS_<#=column.Name#>"/>
<#}
} #>
</Columns>
</RightInputPath>
<JoinKeys>
<#foreach(var column in table.Columns.Where(i=> i.GetTag("ColumnRole")=="BK" )) { #>
<JoinKey LeftColumn="<#=column.Name#>" RightColumn="<#=column.Name#>"></JoinKey>
<# } #>
</JoinKeys>
</MergeJoin>
答案 0 :(得分:0)
不确定你是否设法深究这一点,但我遇到了完全相同的问题,并找出了问题所在。
您需要确保在指定JoinKeys时,LeftColumn和RightColumn值应与上面的输入路径部分中的列别名相匹配。在您的情况下,JoinKeys部分应定义如下:
<JoinKeys>
<#foreach(var column in table.Columns.Where(i=> i.GetTag("ColumnRole")=="BK" )) { #>
<JoinKey LeftColumn="STG_<#=column.Name#>" RightColumn="ODS_<#=column.Name#>"></JoinKey>
<# } #>
</JoinKeys>
希望这有帮助!
Fiaz