"DT_DBTIME2" 和 "DT_WSTR" 之间的转换误差,用于"ETAHour"



我有一个SQL查询,返回给我一个"time(0)"。我把它加载到SSIS中,它会自动转换成"DT_DBTIME2",这是可以的。我可以使用数据转换数据流项将其转换为任何其他类型而不会出现错误。

我的问题是,当我试图将该值插入表的"time(0)"字段时,它给了我以下错误:

OLE DB适配器使用的OLE DB提供程序无法在两者之间进行转换type "DT_DBTIME2" and "DT_WSTR" for "ETAHour".

当我将鼠标放在OLE DB Destination组件中的字段上时,它清楚地表明源字段是DT_DBTIME2,目的字段是DT_DBTIME2。我真想知道这个转换错误是从哪里来的。

确保在连接字符串中指定提供程序。

在我的情况下,我使用MSSQL 2012企业。它可以在本地机器上工作,但在安装程序中更新dtsconfig中的连接字符串后,它失败了,出现上面的错误。

设置OLE DB提供程序修复问题,在我的情况下:

Provider=SQLNCLI11.1

在导入现有的SSIS项目创建了一个新的连接字符串后出现了类似的问题,并且在我切换后出现了多个错误。

将OLE DB提供程序更改为SQL Server Native Client 11.0解决了这个问题,相当于设置SQLNCLI11.1

输入图片描述

最新更新