在 SSIS 中将 ODBC DB2 源转换为平面文件错误

Posted

技术标签:

【中文标题】在 SSIS 中将 ODBC DB2 源转换为平面文件错误【英文标题】:Convert ODBC DB2 source to Flat File error in SSIS 【发布时间】:2017-05-04 08:39:38 【问题描述】:

我有 ODBC DB2 查询从数据库中获取数据,列的数据类型仅包含 varchar(x)、日期和 int。

但是,我想将它们保存在平面文件目标中,但无法使用 UTF-8 编码。 SSIS 不断通知以下错误消息:

[平面文件目标 si_ce_f_hotel_capacity_snapshot_weekly [2]] 错误:数据转换失败。列的数据转换 “SOURCE_MARKET_CODE”返回状态值 2 和状态文本“The 由于可能会丢失数据,因此无法转换值。”。

此列具有来自源的 varchar(2) 数据类型。我在 ssis 平面文件结构中将此数据类型指定为 DT_WSTR (2)。

但是,当我将文件格式更改为 Unicode 时,一切正常。

如何在 UTF-8 中完成这项工作??

非常感谢您的回答。

【问题讨论】:

【参考方案1】:

varchar -> DT_STR Nvarchar -> DT_WST

您应该将ssis平面文件结构中的数据类型指定为DT_STR或使用ssis数据转换转换工具

【讨论】:

【参考方案2】:

您需要在数据流的中间进行数据转换。这可以通过使用派生列或数据转换数据流转换来完成。

【讨论】:

以上是关于在 SSIS 中将 ODBC DB2 源转换为平面文件错误的主要内容,如果未能解决你的问题,请参考以下文章

ssis 空日期作为空值

SSIS - 修复源数据中数据类型不正确的数据

在 SSIS 中将日期 DD.MM.YYYY hh:mm:ss 转换为 YYYY-MM-DD

在SSIS中导入CSV:截断错误

SSIS 任务数据流 - 将平面时间值 HHMMSS 转换为 MSSql Time(7) 字段

如何在ssis中将空白转换为null