我有一个简单的 SSIS 包,它从 Oracle 数据库中选择数据并将数据插入到 sql server。在 DataFlow 中,我有 3 个任务:
- 我有一个运行非常简单查询的 OLE DB 源。从表中选择 Col1、Col2、Col3、Col4、Col5、Col6、Col7。
- 然后我有一个数据转换任务,将 col6 和 col7 从 unicode STRING[DT_WSTR] 转换为 STRING[DT_STR]。
- OLE DB 目标(sql 服务器)。
错误:SSIS 将 OLE DB 源任务变为红色并显示以下错误:
输出“OLE DB 源输出”(11) 上的输出列“Col3”(23) 出现错误。返回的列状态为:“文本被截断或一个或多个字符在目标代码页中不匹配。”。
“输出列“Col3”(23)”由于发生截断而失败,并且“输出列“OS_VISIT_ID”(23)”上的截断行配置指定了截断失败。指定组件的指定对象发生截断错误。
但是 Col3 不是文本,而是数字,SSIS 将其检测为 unicode STRING[DT_WSTR]。我什至尝试在数据转换任务中将 Col3 转换为数字,然后再转到 OLE DB 目标。但我仍然得到同样的错误。