ORACLESQLLOADER用法(excel导入oracle).doc

上传人:自*** 文档编号:126230415 上传时间:2020-03-23 格式:DOC 页数:4 大小:44.45KB
返回 下载 相关 举报
ORACLESQLLOADER用法(excel导入oracle).doc_第1页
第1页 / 共4页
ORACLESQLLOADER用法(excel导入oracle).doc_第2页
第2页 / 共4页
ORACLESQLLOADER用法(excel导入oracle).doc_第3页
第3页 / 共4页
ORACLESQLLOADER用法(excel导入oracle).doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《ORACLESQLLOADER用法(excel导入oracle).doc》由会员分享,可在线阅读,更多相关《ORACLESQLLOADER用法(excel导入oracle).doc(4页珍藏版)》请在金锄头文库上搜索。

1、SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中。SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。首先,我们认识一下SQL*LOADER。在windows下,SQL*LOADER的命令为SQLLDR,在UNIX下一般为sqlldr/sqlload。如执行:c:sqlldrSQL*Loader: Release 8.1.6.0.0 - Production on 星期二 1月 8 11:06:42 2002(c) Copyright 1999 Oracle Corporation.

2、 All rights reserved.用法: SQLLOAD 关键字 = 值 ,keyword=value,.有效的关键字: userid - ORACLE username/password control - Control file name log - Log file name bad - Bad file name data - Data file name discard - Discard file namediscardmax - Number of discards to allow (全部默认) skip - Number of logical records to

3、skip (默认0) load - Number of logical records to load (全部默认) errors - Number of errors to allow (默认50) rows - Number of rows in conventional path bind array or between direct path data saves(默认: 常规路径 64, 所有直接路径) bindsize - Size of conventional path bind array in bytes(默认65536) silent - Suppress messag

4、es during run (header,feedback,errors,discards,partitions) direct - use direct path (默认FALSE) parfile - parameter file: name of file that contains parameter specifications parallel - do parallel load (默认FALSE) file - File to allocate extents fromskip_unusable_indexes - disallow/allow unusable indexe

5、s or index partitions(默认FALSE)skip_index_maintenance - do not maintain indexes, mark affected indexes as unusable(默认FALSE)commit_discontinued - commit loaded rows when load is discontinued(默认FALSE) readsize - Size of Read buffer (默认1048576)PLEASE NOTE: 命令行参数可以由位置或关键字指定。前者的例子是 sqlloadscott/tiger foo;

6、后者的例子是 sqlload control=foouserid=scott/tiger.位置指定参数的时间必须早于但不可迟于由关键字指定的参数。例如,SQLLOAD SCott/tiger control=foo logfile=log, 但不允许 sqlload scott/tiger control=foo log,即使允许参数 log 的位置正确。c:我们可以从中看到一些基本的帮助信息.我们知道,SQL*LOADER只能导入纯文本,所以我们现在开始以实例来讲解其用法(excel-oracle)。1.将excle文件另存为一个新文件比如文件名为text.txt,文件类型选文本文件(制表符

7、分隔), 控制文件中要将字段终止符改为X09( fieldsterminatedbyX09 );选择类型为csv(逗号分隔)也行,但是在写后面的控制文件时要将字段终止符改为逗号,( fieldsterminated by, ),假设保存到c盘根目录。 2.如果没有存在的表结构,则创建,假设表为test,有两列为dm,ms,必须先建好表. 3.用记事本创建SQL*Loader控制文件,文件名后缀为ctl,用txt后缀也行。比如命名为control.ctl,存于C盘,内容如下:loaddata-控制文件标识 infilec:test.txt -要导入的数据文件名(文件名要和表名相同,文件地址必须写

8、完整,不能只写文件名不写盘符) appendinto tabletest-向oracle表test中追加记录,从最后一条开始追加fieldsterminatedby X09-字段终止于X09,是一个制表符(TAB) (dm,ms)-定义列对应顺序(oracle表中的字段名)说明:数据导入的方式上例中用的append,有一下几种:insert,为默认方式,在数据装载开始时要求表为空;append,在表中追加新记录;replace,删除旧记录,替换成新装载的记录;truncate,与replace相同。terminated by ,指用逗号分隔terminated by whitespace结尾以

9、空白分隔4.加载格式:sqlldruserid=(用户名)/(数据库密码)control=c:control.ctl(控制文件) log=XXX.out(日志文件,可以不要)此时我们执行加载:D:sqlldr userid=system/manager control=c:control.ctl log=resulthis.outSQL*Loader: Release 8.1.6.0.0 - Production on 星期二 1月 8 10:31:57 2002(c) Copyright 1999 Oracle Corporation. All rights reserved.达到提交点,逻

10、辑记录计数2达到提交点,逻辑记录计数3已经成功!我们可以通过日志文件来分析其过程:resulthis.out内容如下:SQL*Loader: Release 8.1.6.0.0 - Production on 星期二 1月 8 10:31:57 2002(c) Copyright 1999 Oracle Corporation. All rights reserved.控制文件: result.ctl数据文件: result.csv错误文件: result.bad废弃文件: 未作指定: (可废弃所有记录)装载数: ALL跳过数: 0允许的错误: 50绑定数组: 64 行,最大 65536 字节

11、继续: 未作指定所用路径: 常规表RESULTXT已载入从每个逻辑记录插入选项对此表INSERT生效 列名 位置 长度 中止 包装数据类型- - - - - -RESULTID FIRST * , CHARACTERWEBSITE NEXT * , CHARACTERIPPORT NEXT * , CHARACTERSTATUS NEXT * WHT CHARACTER表RESULTXT: 3 行载入成功由于数据错误, 0 行没有载入。由于所有 WHEN 子句失败, 0 行没有载入。由于所有字段都为空的, 0 行没有载入。为结合数组分配的空间: 65016字节(63行)除绑定数组外的内存空间分

12、配: 0字节跳过的逻辑记录总数: 0读取的逻辑记录总数: 3拒绝的逻辑记录总数: 0废弃的逻辑记录总数: 0从星期二 1月 08 10:31:57 2002开始运行在星期二 1月 08 10:32:00 2002处运行结束经过时间为: 00: 00: 02.70CPU 时间为: 00: 00: 00.10(可六、并发操作sqlldr userid=/ control=result1.ctl direct=true parallel=true sqlldr userid=/ control=result2.ctl direct=true parallel=true sqlldr userid=/ control=result2.ctl direct=true parallel=true 当加载大量数据时(大约超过10GB),最好抑制日志的产生:SQLALTER TABLE RESULTXT nologging; 这样不产生REDOLOG,可以提高效率。然后在CONTROL文件中load data上面加一行:unrecoverable 此选项必须要与DIRECT共同应用。在并发操作时,ORACLE声称可以达到每小时处理100GB数据的能力!其实,估计能到110G就算不错了,开始可用结构 相同的文件,但只有少量数据,成功后开始加载大量数据,这样可以避免时间的浪费。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号