我有一个SQL查询,它返回"time(0)"
。我将其加载到SSIS中,它会自动转换为"DT_DBTIME2"
,这没关系。我可以使用数据转换数据流项将其转换为任何其他类型而不会出错。
我的问题是,当我尝试将该值插入表的"time(0)"
字段时,它会给我以下错误:
OLE DB适配器使用的OLE DB提供程序无法进行转换 为“ETAHour”输入“DT_DBTIME2”和“DT_WSTR”。
当我将鼠标悬停在OLE DB
目标组件中的字段上时,它会清楚地表明源字段为DT_DBTIME2
,目标字段为DT_DBTIME2
。我真的很想知道这个转换错误来自哪里。
答案 0 :(得分:1)
确保在连接字符串中指定提供程序。
就我而言,我正在使用MSSQL 2012 Enterprise。它适用于本地计算机,但在安装程序中的dtsconfig中更新连接字符串后,它失败并出现上述错误。
设置OLE DB提供程序已修复问题,在我的情况下:
Provider=SQLNCLI11.1
答案 1 :(得分:1)
导入现有SSIS项目后出现类似问题时创建了一个新的连接字符串,并且在我切换后出现了多个错误。
将OLE DB提供程序更改为SQL Server Native Client 11.0解决了与设置SQLNCLI11.1等效的问题