对于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方法。该错误特定于组件,但是 错误是致命的,将导致数据流任务停止运行。 在此之前可能会发布错误消息,并提供更多信息 关于失败。
答案 0 :(得分:1)
通常,当我从平面文件或Excel中加载日期和日期时间时,我最终会使用字符串(dt_str),然后将其转换为SQL中的日期/日期时间。
我很幸运,flatfile数据类型为dt_str,但SQL表仍为日期时间。它以某种方式隐式转换。但是根据日期的格式,此操作将失败,最终我会执行强制转换方法。
我可能还会补充,Excel一直是我的麻烦之源。如果可以另存为.CSV或其他平面文件,则效果更好。