【发布时间】:2012-06-22 09:45:33
【问题描述】:
我在通过 SQL 加载器加载 CSV 文件时遇到了一些问题。
这里是控制文件:
LOAD DATA
INFILE 'mp.csv'
BADFILE mp.bad'
INSERT
INTO TABLE mp_staging
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
mp_id INTEGER,
mp_name CHAR,
mp_desc CHAR,
oid CHAR,
ptye_cd CHAR,
creation_tmstmp TIMESTAMP WITH TIME ZONE "YYYY-MM-DD HH24:MI:SS,FF9",
modified_tmstmp TIMESTAMP WITH TIME ZONE "YYYY-MM-DD HH24:MI:SS,FF9",
last_generation_tmstmp TIMESTAMP WITH TIME ZONE "YYYY-MM-DD HH24:MI:SS,FF9",
deact_dt DATE,
)
以下是 CSV 文件中的一些示例记录:
1083,"Test3","","mills_b","PRIVATE",2000-12-06 14:29:21.17,1999-12-06 14:29:21.17,2011- 10-01 04:03:44.6
116,"Mike1","","mills_b","PRIVATE",1999-09-15 11:15:29.42,1999-09-15 11:15:59.663,2011- 10-01 04:01:23.923,,0,"F",""
我面临两个问题 -
第二条记录被插入,但表中的 mp_id 不同,因为表中插入的值不是 1083,而是一个完全不同的数字,这似乎是由序列生成的,虽然我有没有引用控制文件中的任何序列。
第一条记录加载失败,出现以下错误:
记录 1:拒绝 - 表 EQ_MP_STAGING 列上的错误 CREATION_TMSTMP。 ORA-01841:(完整)年份必须介于 -4713 和 +9999,而不是 0
有人可以帮助我正确的方向,以便我可以调试这些问题吗?
【问题讨论】:
标签: oracle sql-loader