[转帖]SQL LOADER的使用方法_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3637 | 回复: 0   主题: [转帖]SQL LOADER的使用方法        下一篇 
derek
注册用户
等级:中校
经验:1550
发帖:209
精华:0
注册:2011-7-21
状态:离线
发送短消息息给derek 加好友    发送短消息息给derek 发消息
发表于: IP:您无权察看 2011-9-2 14:06:04 | [全部帖] [楼主帖] 楼主

SQL*LOADER


SQL*LOADER是 ORACLE的数据加载工具,通常用来将操作系统文件(数据)迁移到ORACLE数据库中。
SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。

执行 sqlldr命令可以看到相关帮助信息。

使用说明:

sqlldr userid=scott/scott@oradb control='D:/input.ctl' log='D:/input.log'


input.ctl内容:

load data                          --控制文件标识。
infile *                                --当为*时��入的数据在控制文件中,BEGINDATA后面为导入的数据。
infile 'D:/data.csv'            --要输入的数据文件名称(CSV格式数据)
badfile 'D:/data.bad'        --BAD文件路径
append|insert|replace|truncate    --append在表后追加,insert插入空表,replace替代原有内容。
into  table tableName                      --要导入的 数据库表名称  
fields terminated by ","                    --指定字段分隔符为,,csv文件用。
fields terminated by whitespace  --指定字段分隔符为tab,txt文件用。
fields terminated by X'09'               --以十六进制格式 '09' 表示的。
optionally enclosed by ""                --段选择性地封闭导入为选择的后面为空。  
trailing nullcols                                --表的字段没有对应的值时允许为空。
(col1 terminated by ",")                   --无声明fields terminated by时,列可单独定义。
(col1,col2,col3 FILLER)                  --定义列,FILLER标识这列不会装载。
(col_1 [interger external])               --定义列整数型
(col_1 [date "dd-mon-yy"])             --定义列日期型
(col_1 [char])                                    --第一列字符型
(col_1 position(1:2))                       --指定位置。
(col_1 position(*:2))                        --字段的开始位置在前一字段的结束位置。
(col_1 position(*:2) char(8))          --指定位置以及字段的类型。
(col_1 "upper(:col_1)")                   --字段使用函数。
begindata                                          --对应开始的INFILE * 要导入的内容就在control文件里。
10,sql,what                                        --begindata后的数值的前面不能有空格  
20,lg,show
......


注释:
APPEND        原先的表有数据,加在后面。
INSERT         装载空表,如果原先的表有数据, sqlloader会停止(默认值)。
REPLACE     原先的表有数据,原先的数据会全部删除。
TRUNCATE  指定的内容和replace的相同,会用truncate语句删除现存数据

Sqlldr的函数关键字说明: 

Userid     --oracle用户名  userid = username/password@serviceName 
Control    --控制文件名称  control = 'c:/sqlload.sld' 
Log          --日志文件名称  log = 'c:/sqlload.log' 
Bad          --损坏文件名称  bad = 'c:/sqlload.bad'
Data         --数据文件名     data = 'd:/data.csv' 
Discard    --discard file name
Discardmax --number of discards to allow(默认全部) 
Skip          --导入时跳过的记录行数(默认0) 
Load        --导入时导入的记录行数(默认全部) 


Errors      --允许错误的记录行数(默认50)  




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论