【问题标题】:sqlldr import data,sqlldr 导入数据,
【发布时间】:2012-03-27 22:29:32
【问题描述】:

有一个关于 SQL loader 的问题需要你的帮助:

在使用SQL loader导入数据时,对于日期字段,值为'7232012'代表2012-07-23,在SQL loader控制文件中,如何写入日期格式?

谢谢!

【问题讨论】:

  • @Florin,在 10g 中不起作用,我得到“日期格式无法识别”。这在 11g 中有效吗?
  • @DCookie 不起作用。就像你在答案中解释的那样。 lpad可以在ctl文件中使用吗? (他可以为长度小于 8 个字符的字符串附加 0)
  • 他可以,但这不一定是一个好的解决方案。日期不明确,例如 1112012。是 1 月 11 日,还是 11 月 1 日?
  • oracle 文档全面、在线且免费。你真的应该学会用它来回答诸如此类的琐碎语法问题。例如,这里是解释 SQL*Loader 控制文件中数据类型的章节:docs.oracle.com/cd/E14072_01/server.112/e10701/…
  • @Florin,格式字符串无法识别,

标签: oracle sql-loader


【解决方案1】:

大概是这样的:

THE_DATE DATE "mmddyyyy"

您还需要修改输入数据。对于没有分隔符的格式,您需要为月份和日期提供两位数字,为年份提供 4 位数字:07232012,否则您将收到无效月份的错误。

提供分隔符也更具可读性。例如,

7/23/2012

比一串数字清晰得多。此类日期的格式字符串为 MM/DD/YYYY,您不必指定两位数字,因为您已经对日期部分进行了分隔。

【讨论】:

  • 是的,更改源字符串是正确的方法,但在我看来,我无法更改源文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
相关资源
最近更新 更多