SSIS 错误:返回的列状态为:“转换失败,因为数据值溢出了指定的类型。

SSIS ERROR : The column status returned was: "Conversion failed because the data value overflowed the specified type."

提问人:Eddy 提问时间:9/29/2023 最后编辑:HardCodeEddy 更新时间:9/30/2023 访问量:67

问:

我正在尝试使用SSIS将数据从MYSQL DB加载到SQL Server DB,但我遇到了一个问题,它给了我以下错误:

[OLE DB 目标 MyTable [137]]错误:OLE 出错 数据库目标 MyTable.Inputs[OLE DB 目标 输入]。OLE DB 目标 MyTable.Inputs[OLE DB 上的列 [update_at] 目标输入]。返回的列状态为:“转换失败 因为数据值溢出了指定的类型。

数据类型如下

MYSQL = 时间戳

SQL = 日期时间

默认日期在源数据库中存储为 0000-00-00 00:00:00,并且源数据库中没有 NULL 值。

我尝试了网上列出的多种解决方案,但似乎都不适用于我的项目。

关于可能导致这种情况的原因的任何想法? 任何帮助将不胜感激。

谢谢。

我尝试了网上列出的多种解决方案,但似乎都不适用于我的项目。

MySQL SQL 服务器 SSIS ETL

评论

0赞 P.Salmon 9/29/2023
换句话说 - 我可以强制 sql-server 接受 0000-00-00 00:00:00 的日期时间吗?
0赞 jarlh 9/29/2023
@P.Salmon,我想这是不可能的,因为它是一个无效的日期时间。我会考虑更新源数据库。
0赞 P.Salmon 9/29/2023
@jarlh 如果 ssis 不能随时转换,我会感到惊讶。
0赞 Bee_Riii 9/29/2023
你好。如果您让我们知道您尝试了什么,您将获得更好的帮助。需要将 0 值转换为 null,这当然可以在 SSIS 中完成。
2赞 John Cappelletti 9/29/2023
如果有帮助,try_convert() 将返回 NULL 而不会引发错误。例如:选择 try_convert(datetime,'0000-00-00 00:00:00')

答: 暂无答案