SSIS错误 - 值违反了该列的架构约束

时间:2015-04-28 22:59:19

标签: ssis excel-2007

使用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方法返回错误。错误是   特定于组件,但错误是致命的,将导致   数据流任务停止运行。可能会发布错误消息   在此之前,有关失败的更多信息。

1 个答案:

答案 0 :(得分:1)

我相信单个Excel列的限制实际上是255个字符。我将测试SSIS流中上游的较长值,并使用派生列拆分这些行或截断长数据。