【问题标题】:SSIS Truncation Error on 'float' (DT_R8) Data Type'float' (DT_R8) 数据类型上的 SSIS 截断错误
【发布时间】:2020-06-04 19:32:09
【问题描述】:

我有一个 SSIS 包 (VS2019) 将数据从 Access 数据源 (ODBC) 迁移到 MSSQL (2012, ADO.NET) 目标。有很多表,包含许多浮点字段,所有这些都运行没有问题;但是,在一个特定的浮点字段上会发生以下错误:

错误:ImpellerData 处的 0x384,ODBC 源 [64]:打开数据库 发生连接 (ODBC) 错误。状态:'01S07'。本机错误代码: 13. [Microsoft][ODBC Microsoft Access Driver]第20列的小数截断(D2aRefdiameter)

MSAccess 类型 = 数字 [字段大小 = 双倍]

MSSQL 类型 = 浮点数,空

我查看了 MSAccess 中的数据,没有发现任何异常情况。

最大值为:614

最小值为:0.00328

我尝试在谷歌上搜索截断错误,但大多数结果都与文本字段有关。 我意识到这个错误可能只是说由于转换后的值可能与源值略有不同,这很好,但是我看不到忽略这种数据类型的截断错误的方法。

非常感谢任何有关如何解决此问题或需要调查的内容的建议。

我在上面发布了我认为适用的部分,但如果需要更多信息,请告诉我。谢谢。

【问题讨论】:

  • 恭喜,这是我以前从未见过的 SSIS 错误。 1)您正在使用 ODBC 数据源(基于错误消息)-您选择该数据源(以及随附的驱动程序)是否有原因?如果您切换到 OLEDB/JET/ACE 驱动程序,它的行为是否相同? 2) 如果将源从表修改为查询并将D2aRefdiameter 显式转换为字符串类型,是否可以解决问题? 3) 您可以通过...从源中添加 OnTruncation 错误路径...双击它并查找错误选项卡。如果没有,它是一个右键单击高级编辑器。然后你可以检查坏数据
  • 感谢您的建议。我按照您在#1 中的建议使用了 Jet 驱动程序,它可以正常工作。不确定 ODBC 的问题是什么,但很高兴继续使用它。谢谢!

标签: sql-server ms-access ssis etl


【解决方案1】:

通过 cmets,Beeker 转而使用 JET 驱动程序而不是 ODBC 驱动程序,这解决了问题。

评论提升为回答

您正在使用 ODBC 数据源(基于错误消息) - 您选择该数据源(以及随附的驱动程序)是否有原因?如果您切换到 OLEDB/JET/ACE 驱动程序,它的行为是否相同? 2)如果您将源从表修改为查询并将 D2aRefdiameter 显式转换为字符串类型,是否可以解决问题? 3) 您可以通过...从源中添加 OnTruncation 错误路径...双击它并查找错误选项卡。如果没有,它是一个右键单击高级编辑器。然后你可以检查坏数据

【讨论】:

    最近更新 更多