sqlldr是oracle自带的快速导入批量数据的工具,常用于性能测试。考虑手工构造控制文件较为繁琐,因此使用脚本完成批量数据的自动导入。

基本知识

sqlldr命令语法

sqlldr dbname/dbpassword@oracle_sid control=control.ctl log=sqlldr.log bad=sqlldr.bad

选项介绍

、control 控制文件:包含导入数据和表的信息
、log 日志文件:导入过程中的日志记录
、bad 失败文件:导入失败的数据记录
、rows 每次提交记录数
、bindsize 每次提交记录的缓冲区大小
、direct 使用直接路径导入,默认为false
、parallel 并行导入

控制文件格式

load data infile 'datafile' append into table tablename fields terminated by '|'
(
col1,
col2
)

设计思路

核心是创建sqlldr导入使用的控制文件

1、从USER_TAB_COLUMNS表中获取输入的欲导入数据标的表结构属性(列名和类型);

2、对DATE和TIMESTAMP类型进行转换,完成sqlldr要求的控制文件格式。

3、调用sqlldr命令执行自动导入数据。

脚本使用

1、下载代码:loadOradata.sh,上传到oracle用户任意目录下。

2、登录oracle用户,执行chmod +x loadOradata.sh赋可执行权限。

3、执行./loadOradata.sh 数据库名/数据库密码 待导入的表名 构造生成的数据文件

说明:建议在导入数据前先备份并清理待导入的表。原因是sqlldr命令的direct=True,,可能会由于存在重复数据导致索引失效。

Oracle快速导入数据工具的更多相关文章

  1. 1118ALTER TABLE tabname DISCARD TABLESPACE快速导入数据利用表空间

    -- 快速导入数据如果你有.ibd文件的一个干净的备份,你可以按如下操作从被起源的地方恢复它到MySQL安装中:相当快速 1. 发出这个ALTER TABLE语句: 2. ALTER TABLE tb ...

  2. Oracle impdp导入数据临时表空间与undo表空间爆满解决实例

    Oracle impdp导入数据临时表空间与undo表空间爆满解决实例 [日期:2018-01-24] 来源:Linux社区  作者:rangle [字体:大 中 小]   针对Oracle数据迁移, ...

  3. Oracle快速插入数据append

    1:用merge into 进行匹配更新和插入,2: 开启并行,提高速度3: 如果可以的话加NOLOGING 不写入日志4:如果数据有规律的话,分批次执行 1.使用marge快速插入; MERGE / ...

  4. ORACLE impdp 导入数据

    1 table_exists_action参数说明 使用imp进行数据导入时,若表已经存在,要先drop掉表,再进行导入. 而使用impdp完成数据库导入时,若表已经存在,有四种的处理方式: 1)  ...

  5. Oracle Sqlload 导入数据

    sqlload导入数据具有快,简单,无需校验等方便,多说无益 1 首先,oracle数据库要有这么个表,用来接收数据.我这里这个uuid是序列生成的,当然也可以sqlload导入时候分配uuid -- ...

  6. Oracle导出导入数据

    Oracle数据导入导出imp/exp就相当与oracle数据还原与备份, 利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用. 可以在SQLPLUS.EXE或者DOS(命令行)中 ...

  7. MySQL 之 LOAD DATA INFILE 快速导入数据

    SELECT INTO OUTFILE > help select; Name: 'SELECT' Description: Syntax: SELECT [ALL | DISTINCT | D ...

  8. Oracle导出/导入数据方法--两种方法(pde格式/dmp格式)

    转至:https://www.cnblogs.com/houbxblogs/articles/13365557.html?ivk_sa=1024320u 1.导出数据方法一(pde格式) 工具→ 导出 ...

  9. Oracle逻辑导入数据(IMP/IMPDP)

    使用IMPDP导入数据的前提是数据是使用EMPDP导出的,同样也是在DOS窗口下直接输入IMPDP和登录数据库的用户名,即可导人数据. impdp导到指定用户下: impdp student/1234 ...

随机推荐

  1. Idea 2018版破解

    刚把idea升级到最新版,发现要重新激活,网上查了有改host的方法可行,只是有点麻烦.无意中发现一个方法,如图所示 输入    http://idea.java.sx/   即可,亲测可用.如果资金 ...

  2. github----awesome-typescript-projects

    https://github.com/brookshi/awesome-typescript-projects

  3. SSH框架总结(环境搭建+框架分析+实例源码下载)

    一.SSH框架简介 SSH是struts+spring+hibernate集成的web应用程序开源框架. Struts:用来控制的,核心控制器是Controller. Spring:对Struts和H ...

  4. 逻辑运算符&逻辑短路

    (1)and 逻辑与 全真则真,一假则假 print(True and True) #True print(False and True) #False print(False and False) ...

  5. WebBrowser JS回调delphi的方法 (简单通用)

    上一部分讲了Delphi根据方法名调用方法,这一部分还有用到,接着上一章: [主要原理] 通过TEmbeddedWB控件的OnShowMessage事件捕获弹窗来实现,弹窗时定义方法名和参数,在捕获方 ...

  6. elasticsearch 外网访问9200端口访问

    可以访问127.0.0.1:9200,但不能访问 公网IP:9200 后面ip就是127.0.0.1的局域网ip,如何解决? 修改配置文件 config/elasticsearch.yml netwo ...

  7. HDFS操作及小文件合并

    小文件合并是针对文件上传到HDFS之前 这些文件夹里面都是小文件 参考代码 package com.gong.hadoop2; import java.io.IOException; import j ...

  8. retry之python重试机制

    安装 pip install retry Retry装饰器 retry(exceptions=Exception, tries=-1, delay=0, max_delay=None, backoff ...

  9. hadoop2.4集群的搭建

    hadoop中的三大组件: hdfs:分布式文件管理系统 (namenode管理所有的datanode) yarn:资源调度系统(ResourceManager管理所有的nodemanager) ma ...

  10. concurrent.futures模块 -----进程池 ---线程池 ---回调

    concurrent.futures模块提供了高度封装的异步调用接口,它内部有关的两个池 ThreadPoolExecutor:线程池,提供异步调用,其基础就是老版的Pool ProcessPoolE ...