插入一个B.C。从平面文件到 Oracle DB 的年值
Inserting a B.C. year value from a flat file to Oracle DB
我正在使用 sqlldr
将数据从平面文件 (.txt) 传输到 oracle 数据库。至于我使用的日期 "to_date(:born, 'DDMMYY')"
,其中 born
是列。如何指定 B.C。年份 (e.x: 01-01-1000BC) 在我的平面文件中,以便它可以转移到我的 oracle table?
您可以使文本文件中的字符串始终具有 BC 或 AD 后缀(在这种情况下不能省略 AD),例如01011000BC
和 01011990AD
,然后在你的控制文件中:
"to_date(:born, 'DDMMYYYYBC')"
或者如果您只想更改负值,您可以使用符号选项做同样的事情,例如0101-1000
和 19900101
然后在控制文件中:
"to_date(:born, 'DDMMSYYYY')"
BC 值看起来很奇怪。
由于您似乎可以控制格式,因此将元素按 YYYYMMDD 顺序排列会更简单且更具可读性,例如-10001231
和 19901231
(更改日期以帮助区分字符串中的月份和日期)然后:
"to_date(:born, 'SYYYYMMDD')"
这基本上就是@xQbert 的建议。
我正在使用 sqlldr
将数据从平面文件 (.txt) 传输到 oracle 数据库。至于我使用的日期 "to_date(:born, 'DDMMYY')"
,其中 born
是列。如何指定 B.C。年份 (e.x: 01-01-1000BC) 在我的平面文件中,以便它可以转移到我的 oracle table?
您可以使文本文件中的字符串始终具有 BC 或 AD 后缀(在这种情况下不能省略 AD),例如01011000BC
和 01011990AD
,然后在你的控制文件中:
"to_date(:born, 'DDMMYYYYBC')"
或者如果您只想更改负值,您可以使用符号选项做同样的事情,例如0101-1000
和 19900101
然后在控制文件中:
"to_date(:born, 'DDMMSYYYY')"
BC 值看起来很奇怪。
由于您似乎可以控制格式,因此将元素按 YYYYMMDD 顺序排列会更简单且更具可读性,例如-10001231
和 19901231
(更改日期以帮助区分字符串中的月份和日期)然后:
"to_date(:born, 'SYYYYMMDD')"
这基本上就是@xQbert 的建议。