【问题标题】:ssis sql 2000 image to 2008 varbinary Failed to retrieve long data for columnssis sql 2000 图像到 2008 varbinary 无法检索列的长数据
【发布时间】:2011-04-06 16:47:36
【问题描述】:

我的任务是将图像类型列从 sql 2000 迁移到 sql 2008 中的 varbinary 类型。

该列的最大数据长度大小为 3812353 的源列。 包总是失败并显示以下错误消息。

[OLE DB 源 [13177]] 错误:无法检索列“attch_file_content_t”的长数据。

[OLE DB 源 [13177]] 错误:输出“OLE DB 源输出”(13187) 上的输出列“attch_file_content_t”(13209) 存在错误。返回的列状态为:“DBSTATUS_UNAVAILABLE”。

[OLE DB 源 [13177]] 错误:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “输出列“attch_file_content_t”(13209)”失败,因为发生了错误代码 0xC0209071,并且“输出列“attch_file_content_t”(13209)上的错误行处置指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

【问题讨论】:

    标签: ssis


    【解决方案1】:

    最后我找到了解决方案。 使用 ADO.net 源而不是使用 OLEDB.net 源

    【讨论】:

      【解决方案2】:

      基本上是连接错误。

      我设法解决了一张桌子上的连接问题,但现在在另一张桌子上发现了另一个问题。

      最初的意图是将源数据迁移到暂存。 源是 sql 2000,它们有一些附件作为图像类型 然后,当我们从 tableA 中选择 * 时,我们遇到 Failed to retrieve long data for column 问题

      然后我尝试从 tableA 中选择 cast(ImageTypeColumn) as varbinary(8000) 现在它适用于那些不存在的数据 8000 字节

      但不幸的是,在另一个表中,存在一些行数据长度很大。 因此,当我们从 tableA 执行 select cast(ImageTypeColumn) as varbinary(8000) 时它再次失败

      在 Microsoft SQL Server 2000 和更早版本中,varbinary 数据类型的最大限制为 8,000 字节。要存储最多 2 GB 的二进制数据,需要使用 image 数据类型。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 2010-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多