日期:2014-05-16  浏览次数:20569 次

数据库入库的方式实现

        第一种方式,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'
)