SQL Loader的简单使用

  项目中需要导入几十MB、上百MB的TXT文本文件,利用oracle的sql loader导入非常不错。

 

String cmd = "sqlldr userid=数据库用户名/密码@数据库监听实例名 skip=1 errors=0 control=d:/test.ctl data=d:/test.txt log=d:/log/log.log bad=d:/log/bad.bad ";

//返回与当前 Java 应用程序相关的运行时对象 
Runtime run = Runtime.getRuntime(); 
// 启动另一个进程来执行命令
Process p = run.exec(cmd);      
if (p.waitFor() != 0) {       
     if (p.exitValue() == 0) {
        //p.exitValue()==0表示正常结束,1:非正常结束   
        System.out.println(“执行成功”);
     }else { 
        System.out.println(“执行出错”);
     }
} 

test.ctl文件:

LOAD    DATA          
        TRUNCATE   
        INTO   TABLE   表名
        FIELDS   TERMINATED   BY '|'   
TRAILING NULLCOLS
(
name,
password,
createTime date 'YYYY-MM-DD HH24:MI:SS'
)

test.txt

姓名|密码|导入时间
李坏|123456|2012-12-24 22:10:23
叶开|123456|2012-12-24 22:10:23

   cmd命令中的skip=1表示跳过导入文件中的第一行,log=d:/log/log.log导入成功的日志文件, bad=d:/log/bad.bad导入失败的日志文件。

   test.ctl文件中的TRUNCATE  INTO标识全量更新,就是会把表的数据全部删掉,再导入。 (APPEND INTO则是增量,不会删表中的数据)。

 

  

  

原文地址:https://www.cnblogs.com/luxh/p/2500531.html