Sql &引用;未能将system.datetime强制转换为system.char[]”;使用oledb和ado.net时出错

Sql &引用;未能将system.datetime强制转换为system.char[]”;使用oledb和ado.net时出错,sql,sql-server,datetime,ssis,Sql,Sql Server,Datetime,Ssis,我正在使用ole db连接从sql server db中提取大约25列/250万行,然后使用ado.net连接加载到Teradata中,但不断出现错误“未能将system.datetime转换为system.char[]”-我的输入/输出列都正确设置为db_时间戳 奇怪的是,当我运行除6个datetime列之外的所有列时,这很好。。然后,我只运行了datetime列,这些列也运行得很好,但是由于某种原因,当我使用整个数据集(25列)运行包时,我不断地遇到这个错误。。在任何时候,我都不会尝试将da

我正在使用ole db连接从sql server db中提取大约25列/250万行,然后使用ado.net连接加载到Teradata中,但不断出现错误“未能将system.datetime转换为system.char[]”-我的输入/输出列都正确设置为db_时间戳

奇怪的是,当我运行除6个datetime列之外的所有列时,这很好。。然后,我只运行了datetime列,这些列也运行得很好,但是由于某种原因,当我使用整个数据集(25列)运行包时,我不断地遇到这个错误。。在任何时候,我都不会尝试将datetime转换为字符串,SSIS是否会隐式地执行此操作


这可能与一起使用oledb和ado.net并达到某种数据限制有关吗?我花了两天时间试图解决这个问题。

您检查了所有目标列上的数据类型是否匹配了吗?我对teradata一无所知,我的第一个假设是,这两个列之间的日期/时间单位不兼容,所以在幕后,ado.net驱动程序正在将其更新为字符,然后尝试将其写入teradata。是的,我检查了所有数据类型,它们都很好,在teradata中,等效的是时间戳。。我使用的是TIMESTAMP(6),但它并不像我自己提取和加载所有这些datetime列那样简单,它工作得非常完美,只有当它们与所有其他列一起时,它才会出错并将消息传递给我。我还可以在customerref字段(int)中加载所有datetime列,这很好,只是当我尝试通过整个25列数据集时,它失败了。。没有任何意义,是吗!?除非从你所说的billinkc开始,通过包含任何其他字符串列,ado.net在将所有字段传递给teradata之前,会自动在所有字段上应用某种隐式字符串转换?你看过teradata的AtUnity驱动程序了吗?