我使用sqlldr
将数据从平面文件(.txt)传输到oracle db。至于我使用"to_date(:born, 'DDMMYY')"
的日期,其中born
是列。我怎样才能指定B.C.年份(e.x:01-01-1000BC)在我的平面文件中,以便它可以转移到我的oracle表?
答案 0 :(得分:3)
您可以使文本文件中的字符串始终具有BC或AD后缀(在此方案中不能省略AD),例如01011000BC
和01011990AD
,然后在您的控制文件中:
"to_date(:born, 'DDMMYYYYBC')"
如果您只想更改负值,也可以使用sign选项执行相同的操作,例如0101-1000
和19900101
然后在控制文件中:
"to_date(:born, 'DDMMSYYYY')"
对BC值来说看起来很奇怪。
由于您似乎控制了格式,因此将元素放入YYYYMMDD顺序会更简单,更易读,例如-10001231
和19901231
(更改日期以帮助区分字符串中的月份和天数)然后:
"to_date(:born, 'SYYYYMMDD')"
这基本上是@xQbert所建议的。