在写关于sqlldr之前,先介绍一种简单的数据库导入的方法。
一、导入数据库的简单方法
1、在sql窗口输入:1)select 表名.*,rowid from 表名
2)select * from 表名 for update
说明:以上两个语句效果相同,只需选择其中一个输入运行即可。
此步骤可以使得所查询的表,变成可编辑状态。
2、点击表格左上方的锁,就会变成绿色打开状态的锁。
3、造数据--在Excel中造你所需要的数据,记得第一列为空。保存成什么格式,看自己需要。
4、将Excel中的数据复制(注意:第一空列也需要复制),选择数据库表中的第一行,然后粘贴,接着关上锁。
5、在sql命令框输入commit;即可成功导入数据。
注意:表上方的√可以不点击,commit时,会默认校验。
#########分割线#################
二、sqlldr
1、按照以下格式,写一个clt文件。
OPTIONS (skip=1,rows=50000,direct=TURE,errors=500)
LOAD DATA characterset utf8
INFILE "F:\date\sqllder\nplsampledetail2.csv"
append
INTO TABLE nplsampledetail
Fields terminated by ","
trailing nullcols
(
ID ,
POOLID,
LENDDATE DATE "YYYY/MM/DD",
ACCTTYPE,
ACCTID,
BORROWERID,
BANKNAME,
JOB,
INDUSTRY,
YEARINCOME,
SEX,
BIRTHDAY DATE "YYYY/MM/DD",
AGE,
MARITALSTATUS,
EDUCATION,
LINEOFCREDIT,
ACCOUNTTIME DATE "YYYY/MM/DD",
CITY,
CARDTYPE,
CARDTIME DATE "YYYY/MM/DD",
TERMMARK,
NPLDATE DATE "YYYY/MM/DD",
NEWCONSUME,
NPLFIRSTCONSUME DATE "YYYY/MM/DD",
OVERTERMS INTEGER,
BENPLTIMES INTEGER,
NPLPRINAMT,
NPLINTFEEAMT,
NPLPRINTFEEAMT,
NPLACCUTQUOTA,
NPLCUSTOMERQUOTA,
GUARANTEETYPE,
APPLYSCORE,
BEHAVIORSCORE,
COLLECTIONSCORE,
LOANSTATUS,
OUTCONTACT,
CONTACTSTATUS,
CONTACTTIMES INTEGER,
COLLECTIONPLAN,
LAWSUITINFO,
POOLPRINAMT,
POOLINTFEEAMT,
POOLPRINTAMT
)
说明:(1)括号里为想要插入数据的表的字段,用逗号隔开。
(2)第一个参数:跳过第一行;
(3)第二个参数:一次记录多少行;
(4)第三个参数:可以忽略唯一约束,强行导入所需导入的数据;如果不加此参数,则会考虑唯一约束;
(5)第四个参数:允许错误的个数,默认为50,如果超过设置的数目,则后续数据不再导入;
(6)最好习惯将日志打印出来,便于定位错误;
2、写好ctl文件之后,在cmd写一行代码运行,即可快速将数据导入数据库中。
sqlldr 数据库用户名/密码@数据库名称 control=detail.ctl log=F:\date\sqllder\5w.log