使用SQL * Loader控制文件将日期从一种格式转换为另一种格式

时间:2010-07-22 11:55:17

标签: sql oracle sql-loader

来自infile的数据格式为MM/DD/YYYY如何告诉控制文件将其作为YYYYMM加载到数据库中?

2 个答案:

答案 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)"