2

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

我在 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。处理输入“Destination Input”(39) 时,组件“Destination - tblSSISFlatImport”(28) 上的 ProcessInput 方法失败,错误代码为 0xC0209029。已识别的组件从 ProcessInput 方法返回错误。该错误是特定于组件的,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。(SQL Server 导入和导出向导)

4

1 回答 1

2

我以前见过这个错误,它可能是由几件事造成的。

1) 确保在数据转换转换编辑器中,字段名称、地址和联系人编号的数据类型设置为“Unicode 字符串 [DT_WSTR],长度为 50,以便从 SQL Server 转换为 Excel。

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

3) 在 Data Flow 选项卡下,双击源 OLE DB 项,选择 Connection Manager 并通过选择底部的 Preview 来验证是否正在拉取值。您可能没有正确提取数据,从而导致转换步骤失败。

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

希望这可以帮助。

于 2012-12-14T23:04:02.727 回答