sql-server - Unicode 和非 Unicode 之间的 SSIS 数据转换错误

标签 sql-server oracle ssis

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

感谢 friend 们的提前帮助

最佳答案

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

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

Transformation example

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

编辑:

这是更改目的地映射的方法:

Mapping example

您可以拖放,或从下面的下拉列表中选择。

关于sql-server - Unicode 和非 Unicode 之间的 SSIS 数据转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49367560/

相关文章:

sql - 如何从所有列中查询 max(len)?

sql-server - SQL 效率 : WHERE IN Subquery vs. JOIN then GROUP

Azure Blob 存储作为源,FTP 作为目标

mysql - JDBC 驱动程序如何实现 setMaxRows 方法

sql - SQL Server 中存储过程的单元测试

oracle - 启用几何实体化 View 的快速刷新

oracle - 选择数字范围不重叠的地方

sql - row_number() 是否总是以同样的方式打破关系?

sql-server - 如何创建ssis项目

sql-server - SQL Server 2014 安装中缺少 SQL Server Integration Services