【发布时间】:2014-12-18 10:29:18
【问题描述】:
通过 SSIS 将平面文件加载到 SQL Server。我在 SQL Server 目标表中几乎没有 DATE 数据类型的列。在 SSIS 的连接管理器中定义的相应数据类型应该是什么?我尝试了连接管理器中所有可用的DATE 数据类型,但它导致转换错误如下:
[OLE DB 目标 [199]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。 发生 OLE DB 错误。错误代码:0x80004005。 OLE DB 记录 可用。来源:“Microsoft SQL Server Native Client 11.0” Hresult:0x80004005 描述:“强制转换的字符值无效 规范”。
[OLE DB 目标 [199]] 错误:OLE DB 出现错误 Destination.Inputs[OLE DB 目标输入].Columns[创建于] on OLE DB Destination.Inputs[OLE DB 目标输入]。列状态 返回的是:“由于潜在的原因,无法转换该值 数据丢失。”。
[OLE DB 目标 [199]] 错误:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREON错误。 “OLE 数据库 Destination.Inputs[OLE DB 目标输入]”失败,因为错误 发生代码 0xC0209077,并且“OLE DB”上的错误行处置 Destination.Inputs[OLE DB Destination Input]" 指定失败 错误。在指定的指定对象上发生错误 零件。在此之前可能会发布更多错误消息 有关失败的信息。
平面文件源日期格式为DD-MM-YYYY 格式。
【问题讨论】:
-
选择任何日期探测数据类型。在平面文件源中,转到高级属性。对于这些日期列中的每一个,将 FastParse 选项更改为 true。它应该允许您加载数据。如果它不查找未填充数据或使用错误日期的实例。用这些值更新您的问题和/或可能 ping 我
-
FastParse 参考示例
-
@billinkc 我相应地更改了设置。数据流已验证,但 SQL 目标表中的日期列对于所有行都为空。数据流忽略转换失败的列并加载空值。我在平面文件源中使用了日期 [DT_DATE],目标表中的列是 [Date]
标签: sql-server date ssis flat-file