`
mikixiyou
  • 浏览: 1100687 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:353688
社区版块
存档分类
最新评论

Oracle sql loader使用速成

阅读更多

Oracle SQL LOADER是Oracle的数据加载工具,用来将固定格式的文本文件中数据加载到Oracle数据库中。它提供了最快捷的加载途径(direct / parallel),是大数据快速加载的完美工具。在数据仓库应用中用得较多。我们介绍一下它的速成使用方法,快速掌握它。

 

(miki西游 @mikxiyou 原文链接: http://mikixiyou.iteye.com/blog/1738885 )

一、确定加载文件内容格式和文件的字符集编码


导入的文本文件有以txt或csv为后缀名的,它的编码方式通常有gb2312和utf8两种。
例如,csv文件的内容格式如下所示:

"admin","55de42146747ea457c2bab5064b7019c","webmastor@yourdomain.com","d0d8e1"
"huangomeng","2bdca6d6a6cb20f1f2483d0a9d13e621","huangomeng@163.com","145288"
"乐友","ee39f6b01424c1408d17d027da0b85a1","zhnaeu@yahoo.cn","a2fb84"
"贝龙","894a14224560a9792f0a21673642e2cc","50187908@163.com","583815"

 
每个字段是双引号括上,字段之间以逗号分隔开。基本上csv的格式都是这样。
另外,还注意不同的编码字符集,gb2312和utf8等字符集之间的区别要记住。在写sqlldr控制文件时需要用到。

二、编写正确的数据加载控制文件

加载字符集ZHS16GBK的文本文件的控制文件bb_11g.ctl的内容如下:

LOAD DATA
CHARACTERSET ZHS16GBK
INFILE 'D:\uc_members_20121130.csv'
BADFILE 'D:\uc_members_20121130.bad'
DISCARDFILE 'D:\uc_members_20121130.dsc'
truncate
into table T_USER_INFO
(USERNAME CHAR terminated by ',' OPTIONALLY ENCLOSED BY '"' ,
 PASSWD CHAR terminated by ',' OPTIONALLY ENCLOSED BY '"',
 EMAIL CHAR terminated by ',' OPTIONALLY ENCLOSED BY '"' ,
 SALT char terminated  by  whitespace OPTIONALLY ENCLOSED BY '"')

 
这里的字符集名称和数据库的字符集名称一致。如果字符集不匹配,在加载数据进入数据库后,你会发现中文或其他文件的都会是乱码。
如果数据库字符集是ALT32UTF8,那么需要将"CHARACTERSET ZHS16GBK"修改为"CHARACTERSET UTF8"。


字段分隔符说明:
terminated   by   x'09'       ,指字段以X'09' -- 制表符(TAB)分隔   
terminated   by  ','          ,指用逗号分隔 
terminated   by   whitespace ,指结尾以空白分隔   


三、使用sqlldr程序根据控制文件导入文本文件到数据库

在windows的cmd下执行sqlldr,实现数据快速加载。

sqlldr scott/tiger@elvdb_11g control=d:\bb_11g.ctl log=d:\dd_11g.log

 
在执行结束后,记住去检查log文件。日志文件会显示加载的详细信息。

SQL*Loader: Release 10.2.0.1.0 - Production on 星期五 11月 30 10:17:44 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

控制文件:      D:/bb_11g.ctl
为全部输入指定了字符集 ZHS16GBK。

数据文件:      D:\uc_members_20121130.csv
  错误文件:    D:\uc_members_20121130.bad
  废弃文件:    D:\uc_members_20121130.dsc
(可废弃所有记录)

要加载的数: ALL
要跳过的数: 0
允许的错误: 50
绑定数组: 64 行, 最大 256000 字节
继续:    未作指定
所用路径:       常规

表 T_USER_INFO,已加载从每个逻辑记录
插入选项对此表 TRUNCATE 生效

   列名                        位置      长度  中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
USERNAME                            FIRST     *   ,  O (") CHARACTER           
PASSWD                               NEXT     *   ,  O (") CHARACTER           
EMAIL                                NEXT     *   ,  O (") CHARACTER           
SALT                                 NEXT     *  WHT O (") CHARACTER           


表 T_USER_INFO:
  1132907 行 加载成功。
  由于数据错误, 0 行 没有加载。
  由于所有 WHEN 子句失败, 0 行 没有加载。
  由于所有字段都为空的, 0 行 没有加载。


为绑定数组分配的空间:                 66048 字节 (64 行)
读取   缓冲区字节数: 1048576

跳过的逻辑记录总数:          0
读取的逻辑记录总数:       1132907
拒绝的逻辑记录总数:          0
废弃的逻辑记录总数:        0

从 星期五 11月 30 10:17:44 2012 开始运行
在 星期五 11月 30 10:18:23 2012 处运行结束

经过时间为: 00: 00: 39.22
CPU 时间为: 00: 00: 06.16

 

从日志文件中可以看到,加载110万条记录,只要39秒。如果有错误或废弃的记录,可以到对应的文件中去查看一下。


四、注意事项
1、导入的文本文件有时候会很大,使用文本编辑工具可能很难打开。可以尝试一下vi。
2、导入的目标表上最好没有主键,没有索引,没有约束,使用nologging设置尽量减少日志生成量。
3、导入的文本文件最好所有的格式都是字符串或数字。如果是时间,需要将它和NSL_DATE_FORMAT保持一致。
4、对于LOB字段,sqlldr爱莫能助。

 

3
0
分享到:
评论
1 楼 sea0108 2013-07-08  

相关推荐

    oracle SQL Loader使用实例

    Oracle SQL Loader 使用实例 Oracle SQL Loader 是一种强大的数据导入工具,允许用户从文本文件或其他数据源中导入数据到 Oracle 数据库中。本文将详细介绍 Oracle SQL Loader 的使用实例,包括建立文本文件、编写...

    oracle sql loader 用法详解

    通过本文的介绍,我们深入了解了Oracle SQL Loader的各种关键字和参数,以及如何使用它们来高效地完成数据加载任务。无论是处理小规模数据集还是大规模数据仓库,SQL Loader都是一个不可或缺的工具。掌握其用法不仅...

    oracle sql loader全攻略

    ### Oracle SQL Loader全攻略知识点详解 #### 一、SQL Loader的特点与应用场景 Oracle SQL Loader作为Oracle数据库的一个重要组成部分,主要用于将外部数据加载到Oracle数据库中。与其他数据迁移工具相比,SQL ...

    oracle -sqlloader使用方法

    ### Oracle SQL*Loader 使用方法详解 #### 一、SQL*Loader 概览 SQL*Loader 是 Oracle 数据库中用于批量导入外部数据至数据库的强大工具。它不仅具备与 DB2 Load 工具类似的功能,还提供了更为灵活的加载选项,...

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

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

    oracle sqlloader使用指南

    Oracle SQL*Loader 是一个强大的工具,用于快速地将大量数据从外部文件批量导入到Oracle数据库中。这个工具提供了多种选项和灵活性,使得数据装载过程能够适应各种不同的数据格式和需求。下面我们将深入探讨如何使用...

    Oracle sqlloader使用指南

    Oracle SQL*Loader 是一款强大的数据导入工具,用于将外部数据高效地加载到Oracle数据库中。与DB2的Load工具相比,SQL*Loader提供了更多灵活性,包括多种加载模式、选择性加载以及多表加载功能。 使用SQL*Loader时...

    ORACLE SQL Loader

    Oracle SQL*Loader是一款强大的数据加载工具,用于快速将大量数据导入到Oracle数据库中。它能够从各种格式的外部文件中批量加载数据,极大地提高了数据库管理的效率。在本篇文章中,我们将深入探讨SQL*Loader的工作...

    oracle sqlloader使用指南.doc

    虽然Oracle本身没有提供类似SQL*Loader的导出工具,但可以使用SQL*Plus的`SPOOL`命令或者PL/SQL的`UTL_FILE`包来实现数据导出到文件。例如,使用SQL*Plus: ```sql set echo off newpage 0 space 0 pagesize 0 feed...

    SQL loader and oracle sql study

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

    ORACLE_SQLDeveloper使用教程

    本文详细介绍了如何使用 Oracle SQL Developer 和其他开发工具,包括 Oracle Database Home Page 的使用方法、如何在 Oracle 中使用 SQL*Plus、如何使用 SQL Developer 操作 Oracle 数据库以及如何执行 SQL 语句等...

    Oracle SQL Loader的详细语法

    ### Oracle SQL Loader 的详细语法与应用 #### 一、概述 SQL*Loader 是 Oracle 提供的一款强大而灵活的数据加载工具,主要用于将操作系统中的文件数据批量导入到 Oracle 数据库中。相较于其他数据库系统的加载工具...

    Oracle数据库使用SQL_Loader导入外部数据的方法详解

    Oracle数据库使用SQL_Loader导入外部数据的方法详解,详细讲解 sqlldr的使用

    Oracle SQL Developer 使用说明

    本文档将深入讲解Oracle SQL Developer的使用方法,帮助用户充分利用这款工具提升工作效率。 1. **安装与启动** - 下载:首先,你需要从Oracle官网下载最新版本的SQL Developer安装包。 - 安装:按照安装向导的...

    利用sqlloader将 excel 数据导出到 oracle 数据库中.rar

    本教程将详细介绍如何使用SQLLoader将Excel数据导出到Oracle数据库。 首先,我们需要理解SQLLoader的工作原理。SQLLoader通过读取控制文件(.ctl文件),这个文件包含了数据加载的规则和配置,如字段的定义、数据...

    oracle SQL查询工具

    oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...

    Oracle Sql语句转换成Mysql Sql语句

    在数据库管理领域,Oracle SQL和MySQL SQL是两种广泛使用的SQL方言,它们在语法和功能上存在一定的差异。当需要将一个基于Oracle SQL的应用程序迁移到MySQL环境时,就需要进行SQL语句的转换工作。本项目提供了一个...

    SQL*Loader 向oracle数据库批量添加数据 .ctl文件 使用方式详见文章

    与.bat脚本配合使用 load data infile 'C:\Users\yilin\Desktop\abc.txt'  append into table FJH_TMP fields terminated by " " (A)

    kettle oracle批量加载-Oracle Bulk Loader

    kettle快速加载到oracle之oracle批量加载-Oracle Bulk Loader

Global site tag (gtag.js) - Google Analytics