Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSIS查找转换在日期列失败_Ssis_Sql Server 2012 - Fatal编程技术网

SSIS查找转换在日期列失败

SSIS查找转换在日期列失败,ssis,sql-server-2012,Ssis,Sql Server 2012,我们有一个执行日期查找的查找转换。输入列数据类型是DT_DBDATE,匹配的查找列也是。这两种都是SQL Server 2012中的日期数据类型。这是一个SSIS 2012包 查找在投标(设计者)中运行良好。在通过SSIDB UI或自定义存储过程部署和运行时,此查找将失败,并出现以下错误: 错误:查找状态键。输入[Lookup Input]。列[Status_dt]和 名为“status_dt”的引用列具有不兼容的数据类型 我们还可以在所有日期列中看到同步警告,这些警告不会导致失败 还有人见过这

我们有一个执行日期查找的查找转换。输入列数据类型是DT_DBDATE,匹配的查找列也是。这两种都是SQL Server 2012中的日期数据类型。这是一个SSIS 2012包

查找在投标(设计者)中运行良好。在通过SSIDB UI或自定义存储过程部署和运行时,此查找将失败,并出现以下错误:

错误:查找状态键。输入[Lookup Input]。列[Status_dt]和 名为“status_dt”的引用列具有不兼容的数据类型

我们还可以在所有日期列中看到同步警告,这些警告不会导致失败

还有人见过这种行为吗

更新:解决方法是将列强制转换为DATETIME(SSIS中的DT_DBTIMESTAMP)或将底层列更改为DATETIME。两者都回避了这个问题。两者都令人讨厌


我猜问题的根源在于OLEDB提供程序。对仅日期数据类型的支持可能有限或不可靠。

我有一个答案。问题是我没有在连接字符串上指定提供程序。当我添加Provider=SQLNCLI11.1时,问题解决了。

你的猜测是对的。使用OLEDB和一个简单的
日期
总是会导致一个警告,告诉您应该更新元数据。几年前,我已经在Microsoft Connect中提交了该文件。OLE DB中不支持仅日期日期。该值被强制转换为STR或WSTR。如果不在连接字符串中指定提供程序,则默认行为肯定有问题。