4

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

4

2 回答 2

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 以自己的内部表示形式存储日期。

于 2010-07-22T12:08:28.373 回答
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)"

于 2010-07-22T16:38:29.777 回答