使用ssis从sql server导出到excel。通过写入excel文件导出大约80%然后失败并出现此错误。它每次都停在同一行。正在写入的字段中的值是长度参数内的值,并且不包含任何时髦字符。因为35行成功通过并写入excel文件,我假设数据类型是正确的(sql server中的nvarchar(max),SSIS中的DT_WSTR(4000))。还有哪些其他因素可以触发此错误?使用SSIS 2008,excel 2007输出文件。
错误讯息:
错误:0xC0202009在数据流任务1,Excel目标[1380]:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误 代码:0x00040EDA。错误:数据流任务1,Excel中的0xC020901C 目的地[1380]:输入栏出现错误"化学品" (1454)关于输入" Excel目的地输入" (1391年)。列状态 返回的是:"该值违反了模式的约束 。柱"
错误:数据流任务1处的0xC0209029,Excel目标[1380]: SSIS错误代码DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 "输入 " Excel目的地输入" (1391)"失败,因为错误代码0xC0209076 发生了错误行处理"输入" Excel目标 输入" (1391)"指定错误失败。发生错误 指定组件的指定对象。可能有错误 在此之前发布的消息以及有关失败的更多信息。
错误:数据流任务1处的0xC0047022,SSIS.Pipeline:SSIS错误 代码DTS_E_PROCESSINPUTFAILED。组件上的ProcessInput方法 " Excel目的地" (1380)失败,错误代码为0xC0209029 处理输入" Excel目的地输入" (1391年)。确定 component从ProcessInput方法返回错误。错误是 特定于组件,但错误是致命的,将导致 数据流任务停止运行。可能会发布错误消息 在此之前,有关失败的更多信息。
答案 0 :(得分:1)
我相信单个Excel列的限制实际上是255个字符。我将测试SSIS流中上游的较长值,并使用派生列拆分这些行或截断长数据。