SQLLDR简介 和 Oracle插入大量数据
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插入大量数据的更多相关文章
- 使用OCI向Oracle插入Geometry数据
使用C/C++操作Oracle数据库,使用OCI可谓是最强大,当然也是最难的方式.Oracle是一个功能复杂而强大的数据库,它可以很好的支持空间数据(Oracle spatial).如何使用OCI向O ...
- oracle 插入表数据的4种方式
1.往表中插入一整行数据 /*方法一*/ INSERT INTO 表名 VALUES(val1,val2,val3,...); /*方法二*/ '; 如: ,, FROM DUAL; 注意: 2. ...
- Oracle插入中文数据乱码 设置服务器编码和客户端编码一致
- oracle插入字符串数据时,字符串中有'单引号
使用insert into(field1,field2...) values('val1','val2'...)时,若值中有单引号时会报错. 处理方法:判断一下val1,val2中是否含有单引号,若含 ...
- ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法
ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块 --指定文档所有部门都能查看 declare cursor TABLE_DEPT and ...
- Oracle 插入数据效率对比
oracle插入数据有多种方式: 将从多个表中查出来的数据插入到临时表中 数据行数 5189597 1.传统方式:直接将数据插入到表中 insert into LLB_BASIC_USER_D_TEM ...
- 在mysql数据库中创建oracle scott用户的四个表及插入初始化数据
在mysql数据库中创建oracle scott用户的四个表及插入初始化数据 /* 功能:创建 scott 数据库中的 dept 表 */ create table dept( deptno int ...
- ThinkPHP 3.2.3+ORACLE插入数据BUG修复及支持获取自增Id的上次记录
TP+ORACLE插入数据BUG修复以及获取自增Id支持getLastInsID方法 这些天在做Api接口时候,发现用TP操作Oracle数据库,发现查询修改删除都能执行, 但一旦执行插入操作老是报错 ...
- Oracle 函数 “把当前的用户(审核人,审核通过后)插入到数据表中”
create or replace function mcode_apply_update_personnel(p_mca_no VARCHAR2, -- 参数(实参) p_action VARCHA ...
- 003杰信-在jsp页面输入数据,然后在oracle数据库中插入factory数据,当字段允许为空时要特殊处理
本博客的内容全部来自于传智播客,特在此说明. 业务要求如下:在jsp页面(jFactoryCreate.jsp)上输入数据时,转到后台,并输入到数据库. jFactoryCreate.jsp页面:
随机推荐
- 明解STM32—GPIO理论基础知识篇之寄存器原理
一.前言 在之前的STM32的GPIO理论基础知识中,分别对基本结构和工作模式进行了详细的介绍.GPIO基本结构中主要对GPIO内部的各个功能电路逐一的进行的分析:GPIO工作模式中主要介绍GPI ...
- 二进制安装Kubernetes(k8s) v1.24.0 IPv4/IPv6双栈 (三主俩从)
二进制安装Kubernetes(k8s) v1.24.0 IPv4/IPv6双栈 (三主俩从) Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes二进制安装 后续尽可 ...
- Java线程池浅析
1. 什么是线程池?我们为什么需要线程池? 线程池即可以存放线程的容器,若干个可执行现成在"容器"中等待被调度. 我们都知道,线程的生命周期中有以下状态:新建状态(New).就绪状 ...
- 帝国cms 批量删除或者清空classurl(二级域名绑定)
update phome_enewsclass set classurl= null ;
- CSS—相对单位rem
一.概述 rem是一个相对长度单位,它的单位长度取决于根标签html的字体尺寸.rem即root em的意思,中文翻译为根em.浏览器的文本尺寸一般默认为16px,即默认情况下: 1rem = 16p ...
- Redis - 数据类型映射底层结构
简介 从数据类型上体现就是,同一个数据类型,在不同的情况下会使用不同的编码类型,底层所使用的的数据结构也不相同. 字符串对象 字符串对象的编码可以是 int.raw 和 embstr 三者之一. em ...
- 操作系统实验 & bochs 环境配置
wsl2 - Ubuntu 22.04 + VSCode + bochs + xfce4 + VcXsrv 笔者环境 wsl2 - Ubuntu 22.04 0. 安装WSL2 & VSCod ...
- 访问nginx报错502日志:failed (13: Permission denied) while connecting to upstream
1.错误问题 nginx启动成功,但是访问nginx报错502.检查后台项目,使用IP+端口可以正常访问项目的,这说明项目启动成功了.那就是nginx的问题.检查了nginx.conf文件发现配置的反 ...
- python 编程规范有哪些?
Python 编程规范主要包括代码布局.命名规范.注释规范.函数编写规范等多个方面,下面给出一些常见的编程规范及其示例代码. 1. 代码布局规范 代码布局规范主要是指代码的缩进.行宽.空行.换行等方面 ...
- Spring之丐版IOC实现
文章目录 IOC控制反转 依赖注入 Bean的自动装配方式 丐版IOC实现 BeanDefinition.java ResourceLoader.java BeanRegister.java Bean ...