【问题标题】:SSIS Data Conversion Between Unicode and Non-Unicode ErrorUnicode 和非 Unicode 错误之间的 SSIS 数据转换
【发布时间】:2018-08-28 06:49:24
【问题描述】:

当我运行 ssis 包时,我收到此错误“无法在 unicode 和非 unicode 字符串数据类型之间转换”,我的源是 Oracle,当我检查我的输出列数据类型时,它们都是 Unicode 字符串 [DT_WSTR] 和我的目标输入列的 SQL 数据类型是 DT_WSTR 。 我该如何进行这种转换?

提前感谢帮助的朋友

【问题讨论】:

    标签: sql-server oracle ssis


    【解决方案1】:

    使用称为数据转换的特定数据流操作(在您的源和目标之间)。在内部,将每个值从 WSTR 转换为 STR(它们将作为新列添加到流中)。您必须提供每个字符串的长度。请记住从 unicode(每个字符 2 个字节)转换到 windows 代码页 1252(在本例中)(每个字符 1 个字节)之间的数据丢失。

    在本例中,我将名为 NAME 的列转换为名为 NAME (STR) 的新列,新数据类型为 DT_STR,长度为 50。

    您必须将新转换的列映射到目标插入框中的表格。

    编辑:

    这是您在目的地更改映射的方式:

    您可以拖放,也可以从下面的下拉菜单中选择。

    【讨论】:

    • 我是 SSIS 的新手,我应该如何做映射?因为我看到我的目标数据类型仍然是 DT_WSTR 即使我使用你所说的方式更改了我的源数据类型“字符串 [DT_STR] @Ezequiel
    • 源和目标数据类型会在您打开包时自动推断(默认情况下)。 SSIS 连接到您的数据源并检查它们的数据类型。如果您看到 WSTR,那么您在 SQL Server 中有一个 NVARCHAR(与 unicode 兼容)列或在 oracle 中有一个 unicode 列。如果两者都是 WSTR,那么您不必转换。
    • 在数据流任务中的源和目标之间使用数据转换工具后,现在每个源列有两个版本,一个是正常的,如名称,另一个是我在映射中看到的名称副本
    • 谢谢你亲爱的@Ezequiel ...它成功了,我接受了答案,抱歉耽搁了
    猜你喜欢
    • 2013-03-10
    • 2017-01-02
    • 1970-01-01
    • 2013-07-13
    • 2016-05-25
    • 2019-01-07
    • 2017-06-11
    • 2019-06-26
    • 1970-01-01
    相关资源
    最近更新 更多