我使用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导入和导出向导)
答案 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.
希望这有帮助。