ssis sql 2000 image to 2008 varbinary无法检索列的长数据

时间:2010-09-01 09:06:47

标签: ssis

我有一项任务是在sql 2008中将映像类型列从sql 2000迁移到varbinary类型。

源列具有3812353列的最大数据长度。 程序包始终失败,并显示以下错误消息。

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

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

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

2 个答案:

答案 0 :(得分:1)

基本上是连接错误。

我设法解决一个表上的连接问题,但现在在另一个表上找到了另一个问题。

最初的目的是将源数据迁移到暂存。 源是sql 2000,它们有一些附件作为图像类型 然后,当我们执行select * from tableA

时,我们无法检索列问题的长数据

然后我尝试从tableA中选择强制转换(ImageTypeColumn)作为varbinary(8000) 现在它适用于那些不存在的数据8000字节

但不幸的是在另一个表中,存在一些行数据长度很大。 因此,当我们从tableA中选择强制转换(ImageTypeColumn)为varbinary(8000)时,它再次失败

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

答案 1 :(得分:1)

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