0

我需要使用 SSIS 2008 包将数据从远程 mySQL 数据库复制到 MSSQL Server 2008 数据库中。我的 mySQL 数据库中有一些 Timestamp 字段给我带来了问题。当我排除时间戳字段时,我设法很好地复制了数据。在 OLE DB 目标输入 - 输入列上,mySQL 数据库上的时间戳字段显示为具有数据类型 DT_Bytes。

我收到错误 OLE DB 记录可用。
来源:“Microsoft SQL Server Native Client 10.0” Hresult:0x80040E21 描述:“多步 OLE DB 操作生成错误。检查每个 OLE DB 状态值(如果可用)。没有完成任何工作。” [OLE DB 目标 [784]] 错误:无法创建 OLE DB 访问器。验证列元数据是否有效。

我对 mySQL 源的选择语句有一个选择案例来处理 0 个日期,就像这样;SELECT case modified_date when day(modified_date) = 0 then '1990-01-01 00:00:00' else modified _date end as modified from mySQLTableName

4

1 回答 1

1

问题肯定出在您的数据类型上。打开您的目标组件进行编辑。转到映射选项卡。将鼠标悬停在每个列映射上,首先是源列,然后是目标列。工具提示将向您显示每列的数据类型是什么。其中一个不匹配。

这很可能是您的时间戳字段,但可能不是,所以我不会推测。

在任何情况下,为了使它们匹配,在源和目标之间添加一个数据转换组件,并将有问题的源列重新转换为要插入 SQL Server 的数据类型。(如果重铸也导致错误,它会比这个更有帮助!)

于 2013-01-24T23:06:03.467 回答