SSIS。导入多个xlsx文件

时间:2017-04-26 12:20:45

标签: sql-server excel ssis etl

我坚持使用我为将xlsx文件导入数据库而创建的SSIS包。由于某些文件的数据具有更多棕褐色255个字符,因此我将该列设置为DT_NTEXT。如果我只留下一个我知道有长数据的xlsx文件,那么该软件包工作正常,没有错误。但是,如果我将所有需要导入的文件留在导入文件夹中,我会得到下一个错误:

  

[VENTA_IMS_EXCEL [1]]错误:SSIS错误代码DTS_E_OLEDBERROR。
      发生OLE DB错误。错误代码:0x80040E21。

     

[VENTA_IMS_EXCEL [1]]错误:无法检索列" F17"的长数据。

     

[VENTA_IMS_EXCEL [1]]错误:输出列出错       " SubFamilia" (16693)关于输出" Excel源输出" (9)。       返回的列状态为:" DBSTATUS_UNAVAILABLE"。

     

[VENTA_IMS_EXCEL [1]]错误:SSIS错误代码       DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 "输出栏" SubFamilia"       (16693)"失败,因为发生错误代码0xC0209071,并且错误行处置       "输出专栏" SubFamilia" (16693)"指定错误失败。发生错误       指定组件的指定对象。可能会发布错误消息       在此之前,有关失败的更多信息。

     

[SSIS.Pipeline]错误:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。
      组件上的PrimeOutput方法" VENTA_IMS_EXCEL" (1)返回错误代码0xC0209029       当管道引擎调用PrimeOutput()时,组件返回失败代码。       失败代码的含义由组件定义,但错误是致命的       并且管道停止执行。在此之前可能会发布错误消息       有关失败的更多信息。

我的猜测是问题在于它评估每个文件的数据类型,如果数据的颜色为tan 255,则会失败。

任何人都可以帮我吗?我怎么解决这个问题?因此它可以循环并导入所有文件而没有任何问题。

1 个答案:

答案 0 :(得分:1)

这是excel文件的常见问题。 excel驱动程序根据前8行推断每列的数据类型。查看分配给列的数据源的数据类型,然后确认所有值都符合此数据类型。

查看此博文:https://www.concentra.co.uk/blog/why-ssis-always-gets-excel-data-types-wrong-and-how-to-fix-it