`

oracle sqlldr

 
阅读更多

转自:http://liord.blog.51cto.com/956684/820927

 

1 SQL*LOADERORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中。

 

2NT下,SQL*LOADER的命令为SQLLDR,在UNIX下一般为sqlldr/sqlload(在/oracle/product/10.2.0/bin目录下可以看到存在sqlldr)。

 

3用法: sqlldr 关键字 = [,keyword=value,...]

 

4当加载大量数据时,可以抑制日志的产生:

a) ALTER TABLE RESULTXT nologging;

 

5控制文件.ctl

load data           --1、控制文件标识

infile 'test.txt'       --2、要输入的数据文件名为test.txt

append into table test    --3、向表test中追加记录

fields terminated by '|+|' TRAILING NULLCOLS  --4、字段终止于空行

(TP_CUSTOMER_ID ,

ECIF_NO ,

TP_SYSTEM_SOURCE_CD)   -----定义列对应顺序

其中append为数据装载方式,还有其他选项:

ainsert,为缺省方式,在数据装载开始时要求表为空

bappend,在表中追加新记录

creplace,删除旧记录(全部的记录),替换成新装载的记录

dtruncate,同上先删除再新增

 

6范例:

a) Unix + Oracle环境。

b) 在某目录下准备好test.ctltest.dat文件。

c) 运行命令: sqlldr userid=orcl /orcle@10.1.1.11:1521/orcl control=test.ctl data=test.dat log=test.log bad=test.bad;

 

7 sqlldr用到的主要参数

1) userid -- ORACLE username/password

2) control –控制文件

3) log –记录的日志文件

4) bad –坏数据文件,记录错误的未加载数据

5) data –数据文件,* data参数只能指定一个数据文件,如果控制文件也通过infile指定了数据文件,并且指定多个,sqlldr在执行时,先加载data参数指定的数据文件,控制文件中第一个infile指定的数据文件被忽略,但后续的infile指定的数据文件继续有效

6) discard –丢弃的数据文件

7) discardmax –允许丢弃数据的最大值 (默认全部)

8) skip --跳过记录数,从数据文件中,从第一行开始要计算要跳过的行数 (默认0)

9) load -- Number of logical records to load (默认全部)

10) errors –允许的错误记录数,超过则终止任务(默认50)

11) rows -- Number of rows in conventional path bind array or between direct path data saves(每次提交的记录数,默认:常规路径64,直接路径全部,所以使用直接路径的话,效率会比普通的好太多太多)

12) bindsize -- Size of conventional path bind array in bytes(每次提交记录的缓冲区的大小,字节为单位,默认256000)

13) silent --禁止输出信息(header,feedback,errors,discards,partitions)

14) direct –使用直通路径方式导入(默认FALSE)

如果表中有索引的话,是不能指定direct=TRUE的,除非使用skip_index_maintenance=TRUE,这个就是在导入的时候忽略索引,所以在数据导入完毕以后,查看索引的状态应该都是无效的,需要重建之,如下SQLselect * from dba_indexes where table_name='?' ;

alter idnex index_name rebuild ;

重新建立索引要比新建索引快。

15) parallel --并行导入 (默认FALSE,注意:parallel并不是让一个sqlldr语句起多个进程来加载数据,而是不锁住加载表,允许别的直接路径加载.所以要使parallel起作用,应该先将要加载的数据文件分成多个,用多个sqlldr语句同时加载,如下例:

sqlldr userid=scott/tiger control=load1.ctl data=data1.txt direct=y parallel=true & sqlldr userid=scott/tiger control=load2.ctl data=data2.txt direct=y parallel=true & sqlldr userid=scott/tiger control=load3.ctl data=data3.txt direct=y parallel=true &)

16) skip_unusable_indexes -- disallow/allow unusable indexes or index partitions(默认FALSE)

17) skip_index_maintenance -- do not maintain indexes, mark affected indexes as unusable(默认FALSE)

 

分享到:
评论

相关推荐

    oracle sqlldr多文件批量导入

    在“oracle sqlldr多文件批量导入”这个场景下,我们需要掌握如何利用SQL*Loader一次性处理多个数据文件的导入操作。下面我们将详细讲解这个主题。 首先,了解SQL*Loader的基本结构。SQL*Loader通过控制文件(.ctl...

    C# 通过oracle sqlldr 将TXT批量导入oracle

    C# 通过oracle sqlldr 将TXT批量导入oracle 一个文件夹里有大量的TXT文件,以"~"区分各字段. 这个程序能批量将此文件夹里的所有的文件导入oralce 并按日期把已导入的TXT文件复制另一个文件夹

    oracle sqlldr;;merge;分组排序;条件赋值;表连接。简单示例

    实用基础SQL语句;oracle sqlldr;SQL基础语句;merge;分组排序;条件赋值;表连接。简单示例,Oracle数据库文档数据导入

    Oracle sqlldr 大批量数据导入工具

    Oracle sqlldr 大批量数据导入工具使用实例,通过Oracle 自带的sqlldr 工具可快速导入大批量的数据至Oracle中。 工具使用前提条件: 1.安装的Oracle Client 不能为精简版,要不然就找不到sqlldr.exe 2.将Oracle的...

    Oracle64位 sqlldr命令安装包

    oracle11g基本客户端,主要是sqlplus,sqlldr,exp,imp这几个命令。最最主要的还是sqlldr,想找个单独可用的sqlldr,在Oracle 10g Client 精简优化安装包不到12M ...

    Oracle sqlldr导入一个日期列实例详解

    Oracle SQL*Loader(sqlldr)是Oracle数据库提供的一种强大的数据加载工具,用于将大量数据从文本文件快速导入到数据库表中。在这个实例中,我们将详细探讨如何使用SQL*Loader导入包含日期列的数据。 首先,我们...

    Oracle11G客户端64位(sqlldr可用)

    oracle11g基本客户端,主要是sqlplus,sqlldr,exp,imp这几个命令。最最主要的还是sqlldr,想找个单独可用的sqlldr,在Oracle 10g Client 精简优化安装包不到12M ...

    oracle_Sqlldr的使用

    Oracle SQL*Loader是Oracle数据库提供的一个用于将外部数据加载到Oracle表中的工具。它是通过读取一个控制文件,然后加载指定的数据文件到数据库中。SQL*Loader支持多种数据加载方式,可以处理不同格式的数据文件,...

    Oracle中的sqlldr用法.doc

    Oracle中的sqlldr用法详解 Oracle中的sqlldr工具是用来将数据从外部文件加载到Oracle数据库中的一个命令行工具。sqlldr命令提供了许多参数来控制加载过程,下面将详细介绍这些参数的作用和用法。 userid 参数...

    oracle sqlldr 导入乱码问题

    在Oracle数据库环境中,SQL*Loader(SQL Loader)是一款强大的数据导入工具,用于将大量数据从文本文件快速批量地加载到数据库表中。然而,在实际操作过程中,用户可能会遇到各种问题,其中“导入乱码问题”尤为常见...

    sqlldr导入带有自动增加的数据

    在Oracle数据库管理中,SQL*Loader(简称sqlldr)是一个非常强大的工具,用于将外部数据文件中的数据批量加载到Oracle数据库表中。当涉及到处理带有自动增加字段的表时,SQL*Loader提供了一些灵活的方法来确保数据的...

    浅谈ORACLE的SQLLDR

    ### ORACLE SQLLDR知识点详解 #### 一、SQL Loader的特点与应用场景 ##### 特点概述 - **兼容性好**:SQL Loader是Oracle提供的一个非常实用的数据导入工具,能够处理不同格式的数据文件,并将其导入Oracle数据库...

    sqlldr配置文件详解.zip

    修改参数为自己本机配置后,运行脚本,复制输出结果到cmd下,直接运行即可批量将excel文件内容传输至指定Oracle表格中。 包含: sqlldr配置文件详解.sql 批量sqlldr导入.py 批量导入文件SQL语句 示例:祁东县.ctl

    windowns下利用bat命令+oracle的sqlldr功能导入数据

    Oracle的SQL*Loader(简称SQLLDR)工具就是这样一个强大的数据加载器,它能快速高效地将数据从外部文件批量导入到数据库中。结合批处理(BAT)脚本,我们可以自动化这个过程,提高工作效率。下面我们将详细探讨如何...

    Oracle11G的Linux64的sqlldr版本11.2.0.4

    用的是11.2.0.4的Instant Client,Oracle没给sqlldr,Tools里面也没有(12C就有)。 网上下载了几个都是11.2.0.1的sqlldr,包括标了版本号的,都需要替换库文件。 这个是自己安装p13390677_112040_Linux-x86-64_4of7...

    oracle 11.2客户端 sqlldr相关文件

    oracle 11.2客户端(linux) sqlldr相关文件 如果oracle客户端用的是rpm方式安装: sqlldr命令放在bin 其他文件放在lib 如果oracle客户端用的是直接解压方式: 所有都放在根目录即可

    Oracle Client sqlldr和ulus.msb文件

    `sqlldr`,全称为SQL*Loader,是Oracle提供的一种强大的数据加载工具。它能够快速地将大量数据从文本文件导入到数据库表中,适用于大批量的数据迁移、初始化或更新任务。`sqlldr`具有以下特点和功能: 1. **高速...

    Windows版oracle10g精简客户端(带sqlldr)

    在这个"Windows版oracle10g精简客户端(带sqlldr)"中,我们主要关注两个关键组件:Instant Client和sqlldr。 **Instant Client** 是Oracle提供的一种轻量级客户端工具,它允许用户在没有完整安装Oracle数据库的...

Global site tag (gtag.js) - Google Analytics