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. 如何用浏览器读取本地文件(兼容IE8),new bing能帮我吗?

    浏览器读写文件? 有一份老旧而精巧的代码(2006或更早),带js的html,可以只用浏览器来处理一些二进制存档数据. 文件的读写怎么办?通过变动的方法来完成. 利用十六进制编辑软件如WinHEX,直 ...

  2. offsetX与offsetLeft

    offsetX:鼠标指针距离当前绑定元素左侧距离,他并不是相对于带有定位的父盒子的x,y坐标, 记住了,很多博客都解释错了 offsetLeft,offsetTop 相对于最近的祖先定位元素.

  3. FlinkSQL自定义函数开发

    本次需求场景主要为实现将flinksql中collect()函数输出的Mutiset(VARCHAR<100>)多行结果转换为字符串. 一.FlinkSQL自定义函数分类 Flink SQ ...

  4. SpringBoot进阶教程(七十五)数据脱敏

    无论对于什么业务来说,用户数据信息的安全性无疑都是非常重要的.尤其是在数字经济大火背景下,数据的安全性就显得更加重要.数据脱敏可以分为两个部分,一个是DB层面,防止DB数据泄露,暴露用户信息:一个是接 ...

  5. 二进制安装Kubernetes(k8s) v1.24.0 IPv4/IPv6双栈 (三主俩从)

    二进制安装Kubernetes(k8s) v1.24.0 IPv4/IPv6双栈 (三主俩从) Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes二进制安装 后续尽可 ...

  6. pandas之索引操作

    索引(index)是 Pandas 的重要工具,通过索引可以从 DataFame 中选择特定的行数和列数,这种选择数据的方式称为"子集选择".在 Pandas 中,索引值也被称为标 ...

  7. Java对象内存管理

    对象内存管理介绍 编译好的java程序需要运行在JVM中:JVM为java程序提供并管理所需要的内存空间:"栈"."堆"."方法区"三个区域 ...

  8. Seal AppManager发布:基于平台工程理念的全新应用部署管理体验

    4月12日,数澈软件Seal(以下简称"Seal")宣布推出新一代应用统一部署管理平台 Seal AppManager,采用平台工程的理念,降低基础设施操作的复杂度为研发和运维团队 ...

  9. laravel 中使用的 PDF 扩展包 laravel-dompdf 和 laravel-snappy

    这两天项目中需要将HTML页面转换为PDF文件方便打印,我在网上搜了很多资料.先后尝试了laravel-dompdf和laravel-snappy两种扩展包,个人感觉laravel-snappy比较好 ...

  10. opencv基础

    Python 和 OpenCV 的结合是计算机视觉领域中应用最为广泛的一种方式,它们的结合使得开发者可以快速.高效地完成各种视觉任务.本文将介绍 Python 和 OpenCV 的基础使用,包括安装. ...