`

SQL*LOADER操作篇

阅读更多
本篇介绍sqlldr使用过程中,比较常用的4中需求(个人认为),SQL*LOADER的原理和一些关键字的含义就不在絮叨,很多人在说这事,顺便鄙视一下那些在网上粘贴别人文章,不注明出处的人,比较气愤,今天在网上查资料的时候,所有人都一样,找不到原版,还注明原创,MD......这么多人的文章都一字不差,真是有缘!

           需求一、单数据文件导入一张数据表中

        文字是苍白的,事例才是震撼的,所以举例说明:

        1、创建测试表:

             create table test_loader_1(id number(4),name varchar2(20));

        2、创建一个bat文件(在windows下可以直接调用命令行的)

             sqlldr userid=scott/ruiyuan control=D:\sqlloader\user.ctl parallel=true   --特别注意,一个sqlldr只能写一个控制文件


        3、创建一个控制文件.ctl文件

             LOAD DATA
             INFILE 'D:\sqlloader\test1.txt'
              APPEND INTO TABLE test_loader_1
              FIELDS TERMINATED BY X'09'           --(Tab分隔符)
              TRAILING NULLCOLS --(表的字段没有对应的值时允许为空)
             (ID,NAME) 


           4、创建数据文件test1.txt,内容为

                 1             a

                 2             b

           准备工作已经结束,直接点击bat,之后查询test_loader_1表,就会看到有两条数据。


        需求二、多数据文件导入一张数据表中

        1、创建测试表:

             create table test_loader_1(id number(4),name varchar2(20));

        2、创建一个bat文件(在windows下可以直接调用命令行的)

             sqlldr userid=scott/ruiyuan control=D:\sqlloader\user.ctl parallel=true

        3、创建一个控制文件.ctl文件

             LOAD DATA
             INFILE 'D:\sqlloader\test1.txt'
              INFILE 'D:\sqlloader\test2.txt'   


             APPEND INTO TABLE test_loader_1
              FIELDS TERMINATED BY X'09'           --(Tab分隔符)
              TRAILING NULLCOLS
             (ID,NAME) 


        4、创建数据文件test1.txt和test2.txt,内容为

             test1.txt


             1             a

             2             b



             test2.txt


             3            c

             4            d
         准备工作已经结束,直接点击bat,之后查询test_loader_1表,就会看到数据在里面了。

        需求三、单数据文件导入多张数据表中

        1、创建测试表:

             create table test_loader_1(id number(4),name varchar2(20));

             create table test_loader_2(id number(4),name varchar2(20),password varchar2(20));


        2、创建一个bat文件(在windows下可以直接调用命令行的)

             sqlldr userid=scott/ruiyuan control=D:\sqlloader\user.ctl parallel=true

        3、创建一个控制文件.ctl文件        
             LOAD DATA
             INFILE 'D:\sqlloader\test1.txt'
              APPEND INTO TABLE test_loader_1
             WHEN TAB='ABC'
             FIELDS TERMINATED BY X'09'
             TRAILING NULLCOLS
             (TAB FILLER POSITION(1:3),ID,NAME) 
             INTO TABLE test_loader_2
             WHEN TAB='CBA'
            FIELDS TERMINATED BY X'09'
            TRAILING NULLCOLS
            (TAB FILLER POSITION(1:4), 
             ID, 
             NAME,
             PASSWORD
             ) 

        4、创建数据文件test1.txt内容为

             test1.txt


             ABC1             a

             ABC2             b

             CBA3             c

             CBA4             d




        准备工作已经结束,直接点击bat,之后查询test_loader_1和test_loader_2表,就会看到数据在里面了。


        需求四、多数据文件导入多张数据表中


          1、创建测试表:

             create table test_loader_1(id number(4),name varchar2(20));

             create table test_loader_2(id number(4),name varchar2(20),password varchar2(20));


        2、创建一个bat文件(在windows下可以直接调用命令行的)

             sqlldr userid=scott/ruiyuan control=D:\sqlloader\user.ctl parallel=true

        3、创建一个控制文件.ctl文件        
             LOAD DATA
             INFILE 'D:\sqlloader\test1.txt'
             INFILE 'D:\sqlloader\test2.txt'

             APPEND INTO TABLE test_loader_1
             WHEN TAB='ABC'
             FIELDS TERMINATED BY X'09'
             TRAILING NULLCOLS
             (TAB FILLER POSITION(1:3),ID,NAME) 
             INTO TABLE test_loader_2
             WHEN TAB='CBA'
            FIELDS TERMINATED BY X'09'
            TRAILING NULLCOLS
            (TAB FILLER POSITION(1:4), 
             ID, 
             NAME,
             PASSWORD
             ) 


        4、创建数据文件test1.txt内容为

             test1.txt


             ABC1             a

             ABC2             b

             CBA3             c

             CBA4             d

             test2.txt


             ABC1             a

             ABC2             b

             CBA3             c

             CBA4             d




      准备工作已经结束,直接点击bat,之后查询test_loader_1和test_loader_2表,就会看到数据在里面了。

        目前没有解决的问题就是在第四种情况下,能精确指定每个表对应的数据文件是哪个,这样的话不用 WHEN 


     TAB='CBA' 进行字符串匹配,很节约CPU运算,文档中没提这事。

     希望有此经历的大牛赐教!

  
http://blog.csdn.net/cupid1102/article/details/7357510
分享到:
评论

相关推荐

    使用SQL*Loader将dBASE数据转储到ORACLE数据库.pdf

    在本篇文章中,我们将探讨如何使用SQL*Loader将dBASE数据库的数据转储到Oracle数据库。 首先,了解SQL*Loader的基本功能至关重要。SQL*Loader可以处理多种数据格式,包括固定格式、定界格式和变长记录。它支持多种...

    我的第一个SQLLDR

    1. **创建控制文件**:这是SQL*Loader操作的核心,定义了数据文件的格式、字段映射以及如何将数据加载到数据库表中。控制文件包含诸如字段名称、字段长度、数据类型、分隔符等信息。例如: ``` LOAD DATA INFILE ...

    关于 Oracle 的数据导入导出及 Sql Loader (sqlldr)

    在本篇中,我们将深入探讨Oracle的数据导入导出及Sql Loader的使用方法。 1. **Oracle数据导入导出** Oracle提供了多种数据导入导出工具,包括`expdp`(Export Data Pump)和`impdp`(Import Data Pump)以及传统的...

    sql loader用法小记

    这篇“sql loader用法小记”可能是博主对SQL Loader使用经验的总结和分享,虽然描述中没有具体信息,但从标签“源码”和“工具”可以推断,内容可能涉及到SQL Loader的基本操作、配置文件以及可能遇到的问题。...

    Oracle 数据导入工具

    本篇文章将深入探讨SQL*Loader的工作原理、使用方法以及如何通过界面操作它。 首先,我们来理解SQL*Loader的基本概念。SQL*Loader是Oracle提供的一种实用程序,它能够读取文本文件(通常称为控制文件或数据文件)中...

    sqlldr例子

    SQL*Loader(简称sqlldr)是Oracle数据库系统中一个强大的数据加载工具,它可以从外部文件高效地批量导入数据到数据库中。这篇博文将详细介绍sqlldr的使用实例,帮助你理解和掌握这一工具,以便在实际工作中更有效地...

    将Excel数据加载到Oracle9i数据库.pdf

    总的来说,将Excel数据加载到Oracle9i数据库涉及到了数据转换、文件格式处理、数据库操作等多个环节,通过合理利用SQL*Loader工具和编写有效的控制文件,可以实现高效、准确的数据迁移。这个过程对于数据分析、报表...

    SQL loader and oracle sql study

    这篇博客"SQL loader and oracle sql study"深入探讨了这个主题,旨在帮助用户理解和掌握如何高效地使用SQL Loader以及Oracle SQL。 SQL Loader的工作原理基于控制文件,这是一个包含有关如何处理数据文件的指令的...

    XML导入Oracle表

    SQL*Loader适用于大量数据的快速导入,而XMLType提供了对XML数据的直接操作和支持,更适合需要频繁查询和处理XML结构的场景。选择哪种方式取决于你的具体需求和数据量。在实际应用中,可能需要结合使用这两种方法,...

    xml导入Oracle表的简单方法

    然后运行SQL*Loader命令来执行导入操作。这种方法适合大规模数据导入,但配置过程相对复杂。 2. **PL/SQL函数和存储过程**:对于小规模或者定制化的导入需求,可以编写PL/SQL代码来解析XML并插入数据。Oracle数据库...

    oracle导出入表

    SQL*Loader的操作需要一个控制文件,定义如何处理输入数据。 2. 执行SQL*Loader: ``` sqlldr username/password control=control_file.ctl log=log_file.log bad=bad_file.bad ``` 控制文件定义了数据加载...

    命令实现excel导入到oracle

    Oracle提供了一个名为SQL*Loader的实用程序,它允许用户通过控制文件从外部数据源(如CSV或Excel)快速批量加载数据到Oracle表中。Excel文件通常需要先转换为CSV格式,因为SQL*Loader默认不直接支持Excel格式。 **...

    Oracle大数据量导入(CSV导入)

    SQL*Loader是Oracle提供的一种强大工具,专门用于将数据从外部文件批量加载到数据库表中。对于CSV文件,SQL*Loader通过控制文件定义数据格式,可以高效地完成导入工作。控制文件包含了字段映射、数据转换规则等配置...

    SQLSERVER导入ORACLE数据库.

    本篇文章将深入探讨如何将数据从SQL Server导入到Oracle数据库,这对于数据迁移、数据整合或跨平台操作具有重要意义。 首先,我们来了解SQL Server和Oracle的基本特性。SQL Server是微软公司开发的一款关系型数据库...

    数据库导入工具

    本篇文章将详细讲解与“数据库导入工具”相关的知识点,特别是针对Oracle数据库的导入操作。 首先,Oracle数据库是全球广泛使用的大型关系型数据库管理系统,它提供了丰富的功能和高度的可扩展性,适用于各种规模的...

    用plsql将mdb文件导入到oracle数据库中

    标题与描述都明确指出了本篇文章的核心内容:利用PL/SQL进行MDB文件向Oracle数据库的数据迁移工作。这一操作在实际业务场景中非常常见,尤其是在需要整合不同数据源或系统时。标题和描述虽然简短,但却直接点明了...

    批量导入数据,大数据导入

    5. **使用Oracle SQL*Loader**:Oracle数据库系统提供了SQL*Loader工具,专门用于快速加载大量数据。 其次,大数据导入则涉及到更复杂的情况,通常数据量巨大,可能超过单台服务器的处理能力。在这种情况下,分布式...

    Oracle 乱码解决

    - **数据导入导出过程中的编码转换问题**:如使用SQL*Loader、EXPDP/IMPDP等工具进行数据迁移时,未设置合适的字符集参数。 - **客户端工具设置不当**:如PL/SQL Developer、SQL Developer等,其配置的字符集与...

    Datenbanken und SQL - Einführung.ppt

    【SQL相关资料】这篇文档是关于数据库和SQL的入门介绍,涵盖了从基本概念到深入技术的多个方面。它由德国多特蒙德工业大学的Klaus Rüdiger Philipp教授讲解,分为十个部分,旨在帮助读者理解和掌握数据库系统、数据...

    微软数据库开发梦工场多媒体教学-oracle篇.rar_oracle

    9. **数据迁移**:学习数据导入导出工具(如SQL*Loader、Data Pump),以及数据库版本升级和迁移。 10. **数据库设计**:涉及关系数据库理论,如何进行实体关系建模,以及规范化理论的应用。 通过这个多媒体教学,...

Global site tag (gtag.js) - Google Analytics