cXz*_*XzY 5 sql-server ssis type-conversion ssis-2012 date
我想在 SSIS 数据流中使用来自 SQL Server 的表。表的列之一是date
类型。当我使用 OLE DB 源组件将其导入 SSIS 时,SSIS 将此列的元数据更改为WSTR
.
你知道如何解决它吗?我认为以前从未发生过。我知道我可以强制 SSIS 在高级编辑器中更改数据类型,但是 SSIS 不应该“知道”这是date
类型列并将其转换为DT_DATE
?
我SQLOLEDB.1
用作提供者。它是 SQL Server 2012,列的数据类型只是date
.
您使用的SQLOLEDB.1
是 SQL 2008 之前版本的驱动程序(已弃用),并且date
数据类型是在 SQL 2008 中引入的。
我怀疑提供程序没有按应有的方式检测数据类型,您可能应该切换到更新的 SQL Native 客户端提供程序。
为了说明这一点,我使用 SQLNCLI11.1 和 SQLOLEDB.1 创建了一个带有 OLE DB 连接管理器的 SSIS 包。数据流都将使用查询SELECT CAST('2017-02-27' AS date) AS DateType;
查看元数据,我们看到 SQLNCLI 正确确定了日期数据类型
SQLOLEDB 无法确定日期数据类型并回退到“安全”类型的 unicode 字符串