导入SSIS项目后如何解决CONVERSION错误

时间:2018-12-27 11:05:19

标签: ssis type-conversion

我正在从TFS导入一个运行良好的SSIS项目。

实际上所有包含带有日期导入数据流的软件包都存在问题。

我收到数十个此错误:

验证错误。 DFT获取日期ODBC Source CodeDate2 [63]:OLE DB适配器使用的OLE DB提供程序无法在“日期”的类型“ DT_BYTES”和“ DT_DBDATE”之间进行转换。

当我单击odbc源代码编辑器时,出现以下消息:

以下输出列的元数据与输出列关联的外部列的元数据不匹配:

输出“ ODBC源输出”:“日期”

是否要用外部列的元数据替换输出列的元数据?

事实是,除了我的计算机外,它在任何地方都可以工作。

是否存在我缺少的ole db provider组件?

3 个答案:

答案 0 :(得分:1)

它可能与Visual Studio或SSDT的版本有关。

尝试安装SSDT 15.8.0(SSDT previous releases),然后在其中运行软件包。

在Visual Studio 15.9.2发布之后,我曾经在MSDN上看到过类似的帖子

Import from Teradata using ODBC gives VS_NEEDSNEWMETADATA error

ODBC Progress datatype problems after updating to VS 2017 15.9

答案 1 :(得分:1)

可以进行降级,但是如果您无法做到这一点,那么重写查询也可以解决您的问题。

在我的情况下,我有一个Postgres查询,返回了 date 类型的列。我只是使用::timestamptz将它们全部转换为 timestamptz 。那时,列从 DT_BYTES 更改为 DT_DBTIMESTAMP ,这对我来说很好。

答案 2 :(得分:0)

在这里,我强制类型在选择中强制转换,并且有效:

SELECT
    [...]
    cast(release_date as datetime) as release_date,
    [...]
FROM cm_wo