SQLLDR简介

一、简介

SQLLOADER是ORACLE的数据加载工具,通常用来将操作系统文件(数据)迁移到ORACLE数据库中。SQLLOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。

二、参数

2.1 语法

用法: SQLLDR keyword=value [,keyword=value,...]

2.2 参数

Keyword 默认值 描述
userid ORACLE 用户名/口令
control 控制文件名
log 日志文件名
bad 错误文件名
data 数据文件名
discard 废弃文件名
discardmax 全部 允许废弃的文件的数目
skip 0 要跳过的逻辑记录的数目
load 全部 要加载的逻辑记录的数目
errors 50 允许的错误的数目
rows 常规路径 64, 所有直接路径 常规路径绑定数组中或直接路径保存数据间的行数
bindsize 256000 常规路径绑定数组的大小 (以字节计)
silent 运行过程中隐藏消息 (标题,反馈,错误,废弃,分区)
direct FALSE 使用直接路径
parfile FALSE 执行并行加载
file 要从以下对象中分配区的文件
skip_unusable_indexes FALSE 不允许/允许使用无用的索引或索引分区
skip_index_maintenance FALSE 没有维护索引, 将受到影响的索引标记为无用
commit_discontinued FALSE 提交加载中断时已加载的行
readsize 1048576 读取缓冲区的大小
external_table NOT_USED 使用外部表进行加载; NOT_USED, GENERATE_ONLY, EXECUTE
columnarrayrows 5000 直接路径列数组的行数
streamsize 256000 直接路径流缓冲区的大小 (以字节计)
multithreading 在直接路径中使用多线程
resumable FALSE 启用或禁用当前的可恢复会话
resumable_name 有助于标识可恢复语句的文本字符串
resumable_timeout 7200 RESUMABLE 的等待时间 (以秒计)
date_cache 1000 日期转换高速缓存的大小 (以条目计)
no_index_errors FALSE 出现任何索引错误时中止加载

三、案例

以Oracle为例,导入20万条数据

3.1 在数据库中创建测试表

CREATE TABLE TEST001 (
"ID" NUMBER generated always as identity,
"NAME" VARCHAR2(255) NULL ,
"AGE" NUMBER NULL
)
NOCOMPRESS
;

3.2 数据格式(.txt)

格式如下:

小明,10
小红,12
小蓝,16
小绿,18

3.3 编写自动入库脚本.ctl

--编写 insert.ctl 文件
load data
characterset utf8 -- 表的储存格式
INFILE 'D:/sql/txbh.txt' -- 数据文本路径
Append into table TEST001 -- 表名
fields terminated by "," -- 以,分割字段
(
NAME,AGE -- 插入的字段
)
  • 开始时的文件

3.4开始执行脚本

  • 执行脚本语句

    sqlldr 用户名/密码@数据库实例名/SID control=脚本名

    如下信息参考:

  • 注意cmd的路径

  • 开始插入

  • 插入完成20w

数据库表中确实插入20w条

插入结束后的文件

多了一个日志文件

查看日志文件

20w条数据只用了1:31.79是不是很快!!!

3.5 遇到报错

上面执行有问题会出现一个bat文件

里面时有问题的数据

  • 可以根据log日志对数据进行修改

SQLLDR简介 和 Oracle插入大量数据的更多相关文章

  1. 使用OCI向Oracle插入Geometry数据

    使用C/C++操作Oracle数据库,使用OCI可谓是最强大,当然也是最难的方式.Oracle是一个功能复杂而强大的数据库,它可以很好的支持空间数据(Oracle spatial).如何使用OCI向O ...

  2. oracle 插入表数据的4种方式

      1.往表中插入一整行数据 /*方法一*/ INSERT INTO 表名 VALUES(val1,val2,val3,...); /*方法二*/ '; 如: ,, FROM DUAL; 注意: 2. ...

  3. Oracle插入中文数据乱码 设置服务器编码和客户端编码一致

  4. oracle插入字符串数据时,字符串中有'单引号

    使用insert into(field1,field2...) values('val1','val2'...)时,若值中有单引号时会报错. 处理方法:判断一下val1,val2中是否含有单引号,若含 ...

  5. ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法

    ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块  --指定文档所有部门都能查看 declare cursor TABLE_DEPT and ...

  6. Oracle 插入数据效率对比

    oracle插入数据有多种方式: 将从多个表中查出来的数据插入到临时表中 数据行数 5189597 1.传统方式:直接将数据插入到表中 insert into LLB_BASIC_USER_D_TEM ...

  7. 在mysql数据库中创建oracle scott用户的四个表及插入初始化数据

    在mysql数据库中创建oracle scott用户的四个表及插入初始化数据 /* 功能:创建 scott 数据库中的 dept 表 */ create table dept( deptno int ...

  8. ThinkPHP 3.2.3+ORACLE插入数据BUG修复及支持获取自增Id的上次记录

    TP+ORACLE插入数据BUG修复以及获取自增Id支持getLastInsID方法 这些天在做Api接口时候,发现用TP操作Oracle数据库,发现查询修改删除都能执行, 但一旦执行插入操作老是报错 ...

  9. Oracle 函数 “把当前的用户(审核人,审核通过后)插入到数据表中”

    create or replace function mcode_apply_update_personnel(p_mca_no VARCHAR2, -- 参数(实参) p_action VARCHA ...

  10. 003杰信-在jsp页面输入数据,然后在oracle数据库中插入factory数据,当字段允许为空时要特殊处理

    本博客的内容全部来自于传智播客,特在此说明. 业务要求如下:在jsp页面(jFactoryCreate.jsp)上输入数据时,转到后台,并输入到数据库. jFactoryCreate.jsp页面:

随机推荐

  1. 【责任链设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

    简介 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,也叫职责链模式.命令链模式.这种模式为请求创建了一个接收者对象的链,允许你将请求沿着处理者链进行 ...

  2. Stanford CS 144, Lab 0: networking warmup 实验

    Stanford CS 144, Lab 0: networking warmup Finish Stanford CS144 lab0 and pass the test. 2023/03/29 - ...

  3. GIT 操作大全 基于廖雪峰

    命令显示从最近到最远的提交日志  git log /  git log --pretty=oneline 回退到上一个版本:$ git reset --hard HEAD^   (用HEAD表示当前版 ...

  4. mixins使用混入引入组件,并可以使用公共函数。组件类同名函数可以替代公共函数。使用$ref获得子元素数据和元素dom节点。使用$parents获得父元素数据。slot插槽的使用

    父组件: <template> <div class="box"> <Header > <div slot="left" ...

  5. java -- Object类和String类

    Object类 java.lang.Object类是Java语言中的根类,每个类都使用 Object 作为超类, 所有的类都直接或间接继承自 Object 类.所有对象(包括数组)都实现这个类的方法. ...

  6. 最新版 Harbor 在ubuntu系统上安装

    最新版 Harbor 在ubuntu系统上安装 The latest version of Harbor is installed on the ubuntu system 安装docker Inst ...

  7. Spring源码系列一:入门——Hello World

    前言 讲解Spring之前,我们首先梳理下Spring有哪些知识点可以进行入手源码分析,比如: Spring IOC依赖注入 Spring AOP切面编程 Spring Bean的声明周期底层原理 S ...

  8. 如何在现有项目中使用`Masa MiniApi`?

    首先我们现有创建一个空的WebApi的项目模板,这个项目模板和MasaFramework本身没有任何关联,我们本博客只是使用的MasaFramework的MiniApi的包 创建Asp.NET Cor ...

  9. DFS手写排列

    DFS手写排列 虽然python中有自带的排列函数,但是在某些特殊情况需要手写排列.掌握了DFS手写排列对DFS的理解有一定的帮助. 1.手写排列(非字典序输出) 这种代码比较简单易懂,但是不是按照字 ...

  10. 关于Java中代码的执行顺序

    结论 注意 只有显式的加载类 JVM才会加载到内存中 先加载父类的静态代码块 然后执行子类静态代码块 当前类存在类静态变量注意引用类型没进行赋值操作初始化为null 并不会显式的加载类又存在静态代码块 ...