SSIS数据类型错误

时间:2018-07-26 13:54:17

标签: sql sql-server ssis

对于SQL Server表上的以下元数据,在SSIS中使用什么正确的数据类型。

[End Date] DATA_TYPE=-9 TYPE_NAME=date  PRECISION=10    LENGTH=20

我正在尝试将数据从excel源加载到ole db目标,并且出现以下错误

  

[OLE DB目标[116]]错误:SSIS错误代码DTS_E_OLEDBERROR。   发生OLE DB错误。错误代码:0x80004005。 OLE DB记录   可用。来源:“ Microsoft SQL Server本机客户端11.0”   结果:0x80004005说明:“强制转换的字符值   规范”。OLE DB记录可用。来源:“ Microsoft SQL   服务器本机客户端11.0“结果:0x80004005说明:”无效   强制转换规范的字符值”。

     

[OLE DB目标[116]]错误:OLE DB错误   OLE上的Destination.Inputs [OLE DB目标输入] .Columns [结束日期]   DB Destination.Inputs [OLE DB目标输入]。列状态   返回的是:“由于潜在的原因,该值无法转换   数据丢失。”

     

[OLE DB目标[116]]错误:SSIS错误代码   DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “ OLE DB   Destination.Inputs [OLE DB目标输入]”由于错误而失败   发生代码0xC0209077,并且“ OLE DB”上出现错误行   Destination.Inputs [OLE DB目标输入]“指定失败   错误。指定对象的指定对象发生错误   零件。在此之前可能会发布错误消息,并提供更多信息   有关失败的信息。

     

[SSIS.Pipeline]错误:SSIS错误代码DTS_E_PROCESSINPUTFAILED。的   组件“ OLE DB目标”(116)上的ProcessInput方法失败   处理输入“ OLE DB目标”时出现错误代码0xC0209029   输入”(129)。所标识的组件从   ProcessInput方法。该错误特定于组件,但是   错误是致命的,将导致数据流任务停止运行。   在此之前可能会发布错误消息,并提供更多信息   关于失败。

1 个答案:

答案 0 :(得分:1)

通常,当我从平面文件或Excel中加载日期和日期时间时,我最终会使用字符串(dt_str),然后将其转换为SQL中的日期/日期时间。

我很幸运,flatfile数据类型为dt_str,但SQL表仍为日期时间。它以某种方式隐式转换。但是根据日期的格式,此操作将失败,最终我会执行强制转换方法。

我可能还会补充,Excel一直是我的麻烦之源。如果可以另存为.CSV或其他平面文件,则效果更好。