将数据从Oracle数据库迁移到SQL Server

时间:2018-02-21 13:00:46

标签: sql-server-2008 ssis database-migration

[ADO NET Destination [2]]错误:数据插入期间发生异常,从提供程序返回的消息是:SqlDateTime overflow。必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。

我不明白来自ssis的错误消息。我需要帮助。 感谢

2 个答案:

答案 0 :(得分:0)

在C#中,当数据从NULL转换为DateTime时,DataTime.MinValue = 0001-01-01,但在数据库中,最小值为1/1/1753,所以你有对NULL进行一些处理,否则当插入0001-01-01(从NULL转换)时,它会抛出该错误。

答案 1 :(得分:0)

双方的日期格式可能存在问题,两个数据库的语言设置可能不同。例如,Oracle使用dd-MM-yyyy,SQL期望MM-dd-yyyy。尝试从两个数据库中选择日期时间字段以检查格式。然后尝试通过SSIS中的某种类型的转换来解决它。您可以尝试将Oracle日期转换为通用日期时间格式,然后再转换回MS SQL日期格式。当然,SSIS应该自动解决它,但使用日期通常是错误和混乱。

另一种可能性是,您正在尝试将Oracle中的TEXT列转换为MSSQL中的datetime列,并且表中的某个值不符合预期的日期格式。