【问题标题】:SSIS cannot determine the correct datatype of the columnSSIS 无法确定列的正确数据类型
【发布时间】:2011-05-02 20:46:42
【问题描述】:

我有一个简单的 SSIS 包,它从 Oracle 数据库中挑选数据并将数据插入到 sql server。在 DataFlow 中,我有 3 个任务:

  1. 我有一个运行非常简单查询的 OLE DB 源。选择 Col1, Col2, Col3, Col4, Col5, Col6, Col7 来自表。
  2. 然后我有一个转换 col6 和 col7 从 Unicode STRING[DT_WSTR] 到 STRING[DT_STR]。
  3. OLE DB 目标(sql 服务器)。

错误:SSIS 将 OLE DB 源任务变为红色并显示 以下错误:

输出“OLE DB”上的输出列“Col3”(23) 出现错误 源输出”(11)。返回的列状态是:“文本是 截断或一个或多个字符在目标代码中不匹配 页。”。

“输出列“Col3”(23)”失败,因为发生了截断, 以及“输出列“OS_VISIT_ID”上的截断行配置 (23)" 指定截断失败。截断错误发生在 指定组件的指定对象。

但 Col3 不是文本,而是数字,SSIS 将其检测为 unicode STRING[DT_WSTR]。 我什至尝试在数据转换任务中将 Col3 转换为数字,然后再转到 OLE DB 目标。但我仍然遇到同样的错误。

【问题讨论】:

    标签: ssis ssis-data-types


    【解决方案1】:

    单击错误输出 - 选择截断,然后选择重定向行。然后在源之后添加一个联合阶段,以将常规输出与“错误”行连接起来。将数据查看器附加到错误行并查看它所抱怨的数据类型。它现在将正常运行任务。

    PS:一些古怪的供应商驱动程序 - 要求 - 你这样做,即使它本身永远不会“失败”。例如 Acucorp XBDC 驱动程序(读取一些奇怪的 db 格式平面文件) - 如果您不设置错误输出,即使配置了错误行后每一行都会通过正常输出,也会失败。

    【讨论】:

      猜你喜欢
      • 2015-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 2018-07-15
      • 2021-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多