科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道在Oracle中大数据量的导入和导出

在Oracle中大数据量的导入和导出

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  在oracle中批量数据的导出是借助sqlplus的spool来实现的。批量数据的导入是通过sqlload来实现的。

作者:中国IT实验室 来源:中国IT实验室 2007年10月7日

关键字: 数据库 ORACLE

  • 评论
  • 分享微博
  • 分享邮件

  在oracle中批量数据的导出是借助sqlplus的spool来实现的。批量数据的导入是通过sqlload来实现的。
  
  大量数据的导出部分如下:
  /***************************
  * sql脚本部分 demo.sql begin
  **************************/
  /**************************
  * @author meconsea
  * @date 20050413
  * @msn meconsea@hotmail.com
  * @Email meconsea@163.com
  **************************/
  
  //##--markup html:html格式输出,缺省为off
  
  //##--autocommit:自动提交insert、update、delete带来的记录改变,缺省为off
  
  //##--define:识别命令中的变量前缀符,缺省为on,也就是'&',碰到变量前缀符,后面的字符串作为变量处理.
  
  set colsep' ';            //##--域输出分隔符
  
  set echo off;              //##--显示start启动的脚本中的每个sql命令,缺省为on
  
  set feedback off;            //##--回显本次sql命令处理的记录条数,缺省为on
  
  set heading off;             //##--输出域标题,缺省为on
  
  set pagesize 0;             //##--输出每页行数,缺省为24,为了避免分页,可设定为0。
  
  set linesize 80;             //##--输出一行字符个数,缺省为80
  
  set numwidth 12;             //##--输出number类型域长度,缺省为10
  
  set termout off;             //##--显示脚本中的命令的执行结果,缺省为on
  
  set timing off;   //##--显示每条sql命令的耗时,缺省为off
  
  set trimout on;             //##--去除标准输出每行的拖尾空格,缺省为off
  
  set trimspool on;            //##--去除重定向(spool)输出每行的拖尾空格,缺省为off
  
  spool C:\data\dmczry.txt;
  
  select trim(czry_dm),trim(swjg_dm),trim(czry_mc) from dm_czry;
  
  spool off;
  
  EOF
  
  /***********************
  * demo.sql end
  ***********************/
  
  在数据导入的时候采用sqlload来调用,在该部分调用的时候用java来调用sqlload。
  sqlload包括ctl控制文件。例如:
  /*********************
  * meconsea ctl
  ********************/
  load data
  infile 'C:\data\dmczry.txt'
  replace into table DM_CZRY
  fields terminated by X'09'
  (CZRY_DM,SWJG_DM,CZRY_MC)
  
  /********************
  * end
  * 注释:里面的replace可以改为append
  *******************/
  
  java程序如下:
  在java程序用可以根据需求写成一个bat文件。 把数据库的配置和文件的路径写到一个properties
  文件。
  /*************************
  * ide properties
  ************************/
  Dserver=test/test@SJJZ
  sqlldr=D:\\oracle\\ora92\\bin\\SQLLDR.EXE
  
  ctldmczry=C:\\data\\ctl\\dmczry.ctl
  txtdmczry=C:\\data\\dmczry.txt
  
  写个PropertyBean.java来操作properties文件。(偷懒不写了!)
  用DmCzry.java来把记录导入db中。部分代码如下:
  
  /****************************
  * 代码摘要
  *
  ***************************/
  ..............
  sqlldr = pb.getSqlldr();
  txt = pb.getTxtdmczry();
  ctl = pb.getCtldmczry();
  Dserver= pb.getDserver();
  
  Process processCmd = Runtime.getRuntime().exec(sqlldr+" "+cmdStr);

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章