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爱莫能助。
分享到:
相关推荐
Oracle SQL Loader 使用实例 Oracle SQL Loader 是一种强大的数据导入工具,允许用户从文本文件或其他数据源中导入数据到 Oracle 数据库中。本文将详细介绍 Oracle SQL Loader 的使用实例,包括建立文本文件、编写...
### Oracle SQL Loader全攻略知识点详解 #### 一、SQL Loader的特点与应用场景 Oracle SQL Loader作为Oracle数据库的一个重要组成部分,主要用于将外部数据加载到Oracle数据库中。与其他数据迁移工具相比,SQL ...
### Oracle SQL*Loader 使用方法详解 #### 一、SQL*Loader 概览 SQL*Loader 是 Oracle 数据库中用于批量导入外部数据至数据库的强大工具。它不仅具备与 DB2 Load 工具类似的功能,还提供了更为灵活的加载选项,...
在本篇中,我们将深入探讨Oracle的数据导入导出及Sql Loader的使用方法。 1. **Oracle数据导入导出** Oracle提供了多种数据导入导出工具,包括`expdp`(Export Data Pump)和`impdp`(Import Data Pump)以及传统的...
Oracle SQL*Loader 是一个强大的工具,用于快速地将大量数据从外部文件批量导入到Oracle数据库中。这个工具提供了多种选项和灵活性,使得数据装载过程能够适应各种不同的数据格式和需求。下面我们将深入探讨如何使用...
Oracle SQL*Loader 是一款强大的数据导入工具,用于将外部数据高效地加载到Oracle数据库中。与DB2的Load工具相比,SQL*Loader提供了更多灵活性,包括多种加载模式、选择性加载以及多表加载功能。 使用SQL*Loader时...
Oracle SQL*Loader是一款强大的数据加载工具,用于快速将大量数据导入到Oracle数据库中。它能够从各种格式的外部文件中批量加载数据,极大地提高了数据库管理的效率。在本篇文章中,我们将深入探讨SQL*Loader的工作...
虽然Oracle本身没有提供类似SQL*Loader的导出工具,但可以使用SQL*Plus的`SPOOL`命令或者PL/SQL的`UTL_FILE`包来实现数据导出到文件。例如,使用SQL*Plus: ```sql set echo off newpage 0 space 0 pagesize 0 feed...
### Oracle SQL Loader 的详细语法与应用 #### 一、概述 SQL*Loader 是 Oracle 提供的一款强大而灵活的数据加载工具,主要用于将操作系统中的文件数据批量导入到 Oracle 数据库中。相较于其他数据库系统的加载工具...
这篇博客"SQL loader and oracle sql study"深入探讨了这个主题,旨在帮助用户理解和掌握如何高效地使用SQL Loader以及Oracle SQL。 SQL Loader的工作原理基于控制文件,这是一个包含有关如何处理数据文件的指令的...
oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具oracle SQL查询工具...
本文详细介绍了如何使用 Oracle SQL Developer 和其他开发工具,包括 Oracle Database Home Page 的使用方法、如何在 Oracle 中使用 SQL*Plus、如何使用 SQL Developer 操作 Oracle 数据库以及如何执行 SQL 语句等...
Oracle数据库使用SQL_Loader导入外部数据的方法详解,详细讲解 sqlldr的使用
本文档将深入讲解Oracle SQL Developer的使用方法,帮助用户充分利用这款工具提升工作效率。 1. **安装与启动** - 下载:首先,你需要从Oracle官网下载最新版本的SQL Developer安装包。 - 安装:按照安装向导的...
本教程将详细介绍如何使用SQLLoader将Excel数据导出到Oracle数据库。 首先,我们需要理解SQLLoader的工作原理。SQLLoader通过读取控制文件(.ctl文件),这个文件包含了数据加载的规则和配置,如字段的定义、数据...
SQL*Loader是Oracle提供的一款强大且灵活的工具,专门用于将大量数据从平面文件(如逗号分隔值CSV文件)高效地导入到Oracle数据库中。它不仅适用于处理标准的文本格式数据,还能够处理固定宽度、二进制文件等不同...
在数据库管理领域,Oracle SQL和MySQL SQL是两种广泛使用的SQL方言,它们在语法和功能上存在一定的差异。当需要将一个基于Oracle SQL的应用程序迁移到MySQL环境时,就需要进行SQL语句的转换工作。本项目提供了一个...
kettle快速加载到oracle之oracle批量加载-Oracle Bulk Loader