gpt4 book ai didi

c# - BIML SsisDataTypeOverride 不工作

转载 作者:太空宇宙 更新时间:2023-11-03 22:50:08 24 4
gpt4 key购买 nike

ssis 中的数据转换任务不允许重复使用现有列以便于自动映射到目标。

所以我编写了一个 foreach 列并评估了数据类型,将其动态添加到列集合中。

我注意到 DataType 和 Length 是必需的,但它们对 ReplaceExisting=true 没有影响。

有没有人找到一种方法来使用 biml 在派生任务中强制转换新数据类型?

这行不通。

使用 (DT_WSTR,length) 转换列在生成 SSIS 包时确实会出现,但不会更改派生任务中为该列定义的数据类型。

<DerivedColumns Name="der_conversions">
<Columns>
<#
foreach(var column in table.Columns)
{
if(column.DataType == System.Data.DbType.AnsiString)
{
#>
<!-- the DataType and Length are required however they have no effect for ReplaceExisting=true -->
<Column ReplaceExisting="true" Name="<#=column.Name#>" DataType="String" SsisDataTypeOverride="DT_WSTR" Length="<#=column.Length#>"><#=column.Name#></Column>
<#
}//endif
}//endforeach
#>
</Columns>

最佳答案

如果您选择了替换现有列,则派生列组件无法更改数据类型。在下面的示例中,我的列 TABLE 是一个 unicode 字符串,长度为 255。在第一行中,我明确地将类型更改为非 unicode 字符串,并观察到数据类型仍然是 DT_WSTR 255。相同应用于新列的公式会正确更改类型。如果我将 ABC 的静态字符串替换为列引用 (DT_STR, 255, 1252) [TABLE],我会看到相同的结果 - 更改了数据类型。

Derived Column Type Change

虽然我没有 2005 年的实例来测试,但我相信这个功能在第一次迭代中确实存在,但在 2012 年被删除了。

关于c# - BIML SsisDataTypeOverride 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47801824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com