插入B.C.从平面文件到Oracle DB的年份值

时间:2018-05-29 16:58:17

标签: oracle date sql-loader

我使用sqlldr将数据从平面文件(.txt)传输到oracle db。至于我使用"to_date(:born, 'DDMMYY')"的日期,其中born是列。我怎样才能指定B.C.年份(e.x:01-01-1000BC)在我的平面文件中,以便它可以转移到我的oracle表?

1 个答案:

答案 0 :(得分:3)

您可以使文本文件中的字符串始终具有BC或AD后缀(在此方案中不能省略AD),例如01011000BC01011990AD,然后在您的控制文件中:

"to_date(:born, 'DDMMYYYYBC')"

如果您只想更改负值,也可以使用sign选项执行相同的操作,例如0101-100019900101然后在控制文件中:

"to_date(:born, 'DDMMSYYYY')"

对BC值来说看起来很奇怪。

由于您似乎控制了格式,因此将元素放入YYYYMMDD顺序会更简单,更易读,例如-1000123119901231(更改日期以帮助区分字符串中的月份和天数)然后:

"to_date(:born, 'SYYYYMMDD')"

这基本上是@xQbert所建议的。