【问题标题】:SSIS : Flat File Source : FastParse property - Date column - errorSSIS:平面文件源:FastParse 属性-日期列-错误
【发布时间】:2015-06-01 06:49:22
【问题描述】:

我已经创建了 SSIS 包并使用平面文件源代码管理读取 CSV 文件。

在 CSV 文件中: 1. 列名 - 过期 2. 日期格式 - 2015 年 5 月 31 日 3. 列数据类型 - DT_DATE

现在,当我在输出中为该列设置 FastParse 属性时,它会给出以下错误消息。

TITLE:包验证错误

包验证错误

------------------ 附加信息:

数据流错误 [读取 CSV 源文件 [73]]:“FastParse”自定义 “读取 CSV 源文件。输出 [平面文件源 Output].Columns[Expiration]" 不能设置为 true。列数据 类型必须是以下之一:DT_I1、DT_I2、DT_I4、DT_I8、 DT_UI1、DT_UI2、DT_UI4、DT_UI8、DT_DBTIMESTAMP、DT_DBTIMESTAMP2、 DT_DBTIMESTAMPOFFSET、DT_DATE、DT_DBDATE、DT_DBTIME、DT_DBTIME2 或 DT_FILETIME。

数据流 [SSIS.Pipeline] 出错:“读取 CSV 源文件”失败 验证并返回验证状态“VS_ISBROKEN”。

数据流错误 [SSIS.Pipeline]:一个或多个组件失败 验证。

数据流错误:任务验证期间出现错误。

(Microsoft.DataTransformationServices.VsIntegration)

是否需要更改某些日期格式才能使用 FastParse 属性?我在一次操作中读取数百万条记录,这非常耗时。

所以,我想提高从 CSV 文件加载数据的性能。

【问题讨论】:

  • 您使用的是 ISO 格式日期 YYYY-MM-DD 吗?
  • @MitchWheat - 为了更清晰,我添加了数据流任务屏幕截图。我没有在任何地方专门使用这种 ISO 格式日期。您能否详细告诉我应该在哪里检查这种日期格式?
  • " 你能告诉我更多详细信息,我应该在哪里检查这种日期格式吗?" erm,在你的数据中.....
  • @MitchWheat - 在 CSV 文件中,日期格式为 5/31/2015 (MM/dd/yyy)。所以在平面文件源中,当我们建议类型时,它会自动在输出中采用 DT_DATE 类型。我尝试将其更改为 DT_DBDATE,但它不起作用。

标签: sql-server ssis


【解决方案1】:

根据 MSDN (https://msdn.microsoft.com/en-us/ms139833.aspx)

通过实现快速解析,包失去了它的能力 以特定于语言环境的格式解释日期、时间和数字数据,以及 许多常用的 ISO 8601 基本和扩展格式,但 包增强了它的性能。例如,快速解析支持 只有最常用的日期格式表示,例如 YYYYMMDD 和 YYYY-MM-DD,不执行特定于语言环境的解析, 不识别货币数据中的特殊字符,并且不能 转换整数的十六进制或科学表示。

因此,您可以使用的唯一日期格式是 YYYYMMDD 和 YYYY-MM-DD。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多