数据库入库的方式实现
第一种方式,insert方式。该种方式简洁暴力,需要对每个字段的值进行解析获取。如果采用一条一条插入的话,效率非常慢,稍微好一点的话,批量插入。当数据量不大的时候,采用该种方式影响不大。而且当某些记录插入失败,不影响其他的话,采用该种方式可以实现。
第2种方式,sqlldr,按照某种格式的文件编排入库,对于大数据量,绝对是福音。建议采用该种方式,简单,容易掌握,几百万的数据都不在话下!语法如下:
sqlldr userid=%s/%s@%s log=%s errors=9999999 data=%s control=%s direct=n rows=%d
userid为用户名/密码@连接串 log为入库的日志,errors为错误数,data为入库的数据文件,control为入库的控制文件.
控制文件例子:
load data
infile "./call.txt"
Append
into table ticket_mm_item
fields terminated by '|'
trailing nullcols
(
TICKET_ID "SEQ_TICKET_ID.nextval",
SERV_ID ,
ACC_NBR ,
IMSI ,
BILLING_CYCLE_ID,
ACCT_ITEM_TYPE_ID,
CHARGING_ID,
APN,
START_TIME Date 'yyyy/mm/dd hh24:mi:ss',
END_TIME Date 'yyyy/mm/dd hh24:mi:ss',
DURATION,
FLOWS,
CHARGE,
FAVO_CHARGE,
FILE_NAME,
CLOSING_CAUSE,
DEAL_TIME Date 'yyyy/mm/dd hh24:mi:ss'
)