来自infile的数据格式为MM/DD/YYYY
如何告诉控制文件将其作为YYYYMM
加载到数据库中?
答案 0 :(得分:10)
当您在INFILE声明中指定列时,只需标识数据所在的格式。就像这样
load data
infile 'whatever.csv'
into table t23
fields terminated by ','
trailing nullcols
(
col_1 integer
, col_2 char
, col_3 date "MM/DD/YYYY"
, col_4 date "MM/DD/YYYY"
, col_5 char
)
不要担心“到”日期格式。这仅用于显示目的。 Oracle将日期存储在自己的内部表示中。
答案 1 :(得分:0)
您是否尝试将MM / DD / YYYY数据加载到char / varchar2字段或日期字段中?
如果您尝试将其加载到日期字段中并且想要保留当月的日期,则APC的答案是正确的。如果你想做的话,你可以随时展示YYYYMM。
如果您尝试将其加载到日期字段中并且想要将其截断到该月的第一天,我认为这样的事情会起作用:
date_column date "MM/DD/YYYY" "trunc(:date_column, 'mm')"
如果插入CHAR / VARCHAR2列,您可以稍微改变它:
vc2_column char "substr(:vc2_column, 7, 4) || substr(:vc2_column, 1, 2)"