【问题标题】:SSIS Data Conversion keeps switching back to UnicodeSSIS 数据转换不断切换回 Unicode
【发布时间】:2015-03-21 21:13:59
【问题描述】:

在 SSIS 中,我在 Active Directory 中查询域用户列表。结果(根据 SSIS)是数据类型“Unicode 文本流 [DT_NTEXT]”。

我正在使用 SSIS 工具箱中的数据转换项来翻译所有字段,然后再将它们插入 SQL 表。我可以进入并为每个字段提供一个输出别名和一个输出“字符串的数据类型 [DT_STR]”(我在默认选项窗口和“高级属性”窗口中尝试过)。我单击“确定”保存设置,但红色 X 仍然存在,表示它无法转换为 Unicode,如果我重新打开属性窗口,所有数据类型都将设置回 Unicode。

以前有人遇到过这种情况吗?

【问题讨论】:

  • 您能否在高级编辑器 > 输出列中将 DT_NTEXT 更改为 DT_WSTR 而不是 DT_STR
  • 如果您将 DT_NTEXT 转为 DT_TEXT,然后将 DT_TEXT 转为 DT_STR,您是否仍有同样的问题。 It works fine for me 所以我很好奇它为什么不适合你

标签: sql-server unicode ssis


【解决方案1】:

Unicode 和非 Unicode 是不兼容的转换类型。您需要使用派生列转换来添加新列。在表达式中使用数据转换:

(DT_STR, 20, 1252)[MyUnicodeCol]

【讨论】:

  • 这行得通 - 但我必须为每个列创建一个派生列元素吗?
  • 是的。虽然这很笨拙。我建议将数据加载到临时表并在下游 SQL 中转换。
【解决方案2】:

Unicode 和非 Unicode 是不兼容的转换类型。我们需要使用数据转换将该特定列从 DT_NTEXT 转换为 DT_WSTR,然后我们再次将其从 DT_WSTR 转换为 DT_STR。

Conversion from DT_NTEXT to DT_STR

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2017-11-29
    • 2013-07-13
    • 2013-03-10
    • 2017-01-02
    • 1970-01-01
    • 2016-05-25
    相关资源
    最近更新 更多