SSIS转换为DT_WSTR而不是转换,或者看起来如此

时间:2011-12-19 14:25:48

标签: casting ssis

我正在创建一个SSIS 2008包,它从ASCII平面文件源读取数据并将其写入SQL Server 2008数据库。 BIDS抱怨unicode和非unicode数据类型之间的隐式转换,所以我使用派生列工具来进行转换。这就是它的样子:

Derived Column Name  |  Derived Column  |  Expression          |  Data Type
AccountName2         |  Replace 'AName' | (DT_WSTR,100) AName  |  string [DT_STR]

我仍然遇到同样的错误:

Validation error. InsertAccountRecords: InsertAccountRecords: Columns "AccountName2" and "AName" cannot convert between unicode and non-unicode string data types.

错误显示在SQL Server目标中,这使我相信问题是派生列中的数据类型。我将它从DT_STR转换为DT_WSTR,但根据这个数据类型名义上仍然是DT_STR,不是吗?

我用Google搜索过,我似乎无法找到这个问题的任何好答案。任何人都可以提供任何指导吗?

编辑:是的。查看派生列下游的数据查看器,AccountName2仍然以DT_STR的形式出现。为什么不是铸造铸造?

1 个答案:

答案 0 :(得分:8)

documentation注意到只有在您选择添加新列时才能正确设置新数据类型。您需要在派生列下拉列表中选择“添加为新列”。

或者只使用数据转换转换,如果更改数据类型是您正在进行的唯一转换,这可能更容易。