我们有一个查找日期查找的Lookup变换。输入列数据类型是DT_DBDATE,匹配查找列也是如此。两者都是SQL Server 2012中的DATE数据类型。这是SSIS 2012包。
查找在BIDS(设计师)中运行良好。部署并运行SSISDB UI或通过我们的自定义sproc时,此查找失败,并显示以下错误:
错误:查找状态Key.Inputs [查找输入] .Columns [status_dt]和 名为“status_dt”的引用列具有不兼容的数据类型。
我们还会在所有DATE列周围看到同步警告,这些警告不会导致失败。
还有其他人看到过这种行为吗?
更新:解决方法是将列转换为DATETIME(SSIS中的DT_DBTIMESTAMP)或将基础列更改为DATETIME。两者都解决了这个问题。两者都很烦人。
我的猜测是问题的根源在OLE DB提供程序中。对于仅限日期的数据类型,可能存在有限或不稳定的支持。
答案 0 :(得分:3)
我有一个答案。问题是我没有在连接字符串上指定提供程序。当我添加 Provider = SQLNCLI11.1; 时,问题已解决。