导出到Excel时导入/导出向导失败

时间:2012-12-14 18:00:31

标签: ssis bids

我使用SSIS导入/导出向导将表从sql server导出到Excel。在Proceed步骤中,我在每个记录中都会收到有关类型转换的警告图标。如果我忽略,则在最后一个屏幕中单击“完成”后导出失败。

我在Stack Overflow中搜索此内容但无法得到相关答案......

SQL表字段及其类型如下:

CREATE SomeTable
(
    EmpId numeric(9)
,   Name varchar(50)
,   Address varchar(50)
,   ContactNo varchar(50)
);

出现的错误记录在下面

  

复制到tblSSISFlatImport(错误)消息错误0xc0202009:数据   流程任务1:SSIS错误代码DTS_E_OLEDBERROR。 OLE DB错误   发生了。错误代码:0x80004005。 (SQL Server导入和导出   向导)错误0xc0209029:数据流任务1:SSIS错误代码   DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “输入”目的地输入“   (39)“失败,因为错误代码0xC020907B发生,错误行   处理“输入”目的地输入“(39)”指定失败   错误。指定的指定对象发生错误   零件。在此之前可能会发布错误消息   有关失败的信息。 (SQL Server导入和导出向导)

     

错误0xc0047022:数据流任务1:SSIS错误代码   DTS_E_PROCESSINPUTFAILED。组件上的ProcessInput方法   “Destination - tblSSISFlatImport”(28)失败并显示错误代码   0xC0209029处理输入“目标输入”(39)。该   已识别的组件从ProcessInput方法返回错误。   该错误特定于组件,但错误是致命的   将导致数据流任务停止运行。可能有错误   此前发布的消息包含有关失败的更多信息。   (SQL Server导入和导出向导)

1 个答案:

答案 0 :(得分:2)

我以前见过这个错误,可能是几件事的结果。

1)确保在数据转换转换编辑器中,字段Name,Address和ContactNo的数据类型设置为“Unicode字符串[DT_WSTR],长度为50,以便从SQL Server转换为Excel。” / p>

2)如果您正在使用服务器,请确保将Run64BitRuntime设置为True(否则将其设置为False)。您可以通过右键单击包名称(窗口右侧的解决方案资源管理器下的第一项),选择属性,然后在Configuration Properites下调试来检查。

3)在“数据流”选项卡下,双击源OLE DB项,选择“连接管理器”,然后通过选择底部的“预览”来验证是否正在拉取值。您可能无法正确提取数据并且正在放弃转换步骤。

4)最后,比较数据转换输入与数据转换输出之间的设置。通过选择“数据转换”任务并在“属性”下选择“显示高级编辑器”的超链接来完成此操作。窗口打开后,选择“输入和输出属性”选项卡。在左窗格中,展开“输入”列和“输出”列文件夹以查看这三个字段。通过选择字段,您可以查看适当的字段。确保长度正确并且正确定义了数据类型属性。如前所述,每个输出应为“Unicoce string [DT_WSTR]”,长度为50.

希望这有帮助。