2
我有CSV文件。我要加载CSV文件的内容,以oracle database with SQLLDR.
使用SQLLDR加载CSV(拒绝)
我SQLLDR是
@echo off
sqlldr [email protected]/password data=D:\csv\data.csv control=D:\ctl\loader.ctl log=D:\ctl \loader.log bad=D:\ctl\loader.bad
pause
我loader.ctl是
OPTIONS (SKIP=1)
LOAD DATA
APPEND
INTO TABLE data2007
FIELDS TERMINATED BY ',' TRAILING NULLCOLS
(number "TRIM (:number)",
name "TRIM (:name)",
total "TRIM (:total)",
)
表
CREATE TABLE DATA2007 (
number VARCHAR2(6),
name VARCHAR2(30),
total NUMBER NULL,
)
我data.csv:
Number,name,Total
1,"Marlyn",2000
2,"Bobby",1000
3,"Rina",2000
4,"Robby,Mr",5000
5,"juliet,Mrs",5000
行1,2,3 =成功,但行4和5拒绝。 我知道问题是行4和行5有四列。
- 如何解决这个问题?
- 加载过程中我可以在“total”字段后插入当前日期吗?
它的工作。非常感谢你@Alex Poole – flyingbird013
我可以编辑control.ctl为 **(id“TRIM(:id)”, load_date“SYSDATE”, name“TRIM(:name)”, total“TRIM :total)“, )** – flyingbird013
@ flyingbird013 - 你需要在数据文件中有一个匹配的字段,为什么(如果不是空的话)的内容将被忽略。如果你还没有这样的领域,将它保留下来会更容易。如果您担心,控制文件中的字段顺序不必与表中的顺序相匹配。 (修剪数字字段可能也是毫无意义的,不是吗?) –