sqlldr装载数据

本文详细介绍如何使用SQL*Loader工具将文本数据导入Oracle数据库。通过实际案例演示了控制文件的配置方法,包括数据文件路径设置、字段分隔符定义、表字段映射及数据处理技巧等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用sqlldr向oracle导入文本数据
D:\> sqlldr mcp/mcp_asia D:\mcp_operator.ctl mcp_operator.bad silent=header,feedback
[说明]
silent=header,feedback 隐藏数据载入过程中的提示信息

其中,控制文件mcp_operator.ctl的内容如下:
Load data
infile 'D:\mcp_operator.AVL'
into table mcp.int_03001_20100616
append
fields terminated by ','
(
op_id,op_name,login_name,phone,op_status,lock_status,org_id,region_code,county_code
)
[说明]
infile 要载入的数据文件完整路径
into table mcp.int_03001_20100616 向表中插入数据
fields terminated by ',' 字段分隔符为逗号
(op_id,op_name,...) 定义字段顺序
row 多少条记录提交一次,默认为64
数据载入方式:
a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上
表字段无对应值,允许其为空:
TRAILING NULLCOLS

参考:http://www.cnblogs.com/twyth/archive/2009/08/16/1547141.html


1) 把 users_data.cvs 中的内容补到 users.ctl 中,并以 BEGINDATA 连接,还要把 INFILE "users_data.csv" 改为 INFILE *。同时为了更大化的说明问题,把数据处理了一下。此时,完整的 users.ctl 文件内容是:
OPTIONS (skip=1,rows=128) -- sqlldr 命令显示的选项可以写到这里边来,skip=1 用来跳过数据中的第一行
LOAD DATA
INFILE * -- 因为数据同控制文件在一起,所以用 * 表示
append -- 这里用了 append 来操作,在表 users 中附加记录
INTO TABLE users
when LOGIN_TIMES'8' -- 还可以用 when 子句选择导入符合条件的记录
Fields terminated by ","
trailing nullcols
(
virtual_column FILLER, --跳过由 PL/SQL Developer 生成的第一列序号
user_id "user_seq.nextval", --这一列直接取序列的下一值,而不用数据中提供的值
user_name "'Hi '||upper(:user_name)",--还能用SQL函数或运算对数据进行加工处理
login_times terminated by ",", NULLIF(login_times='NULL') --可为列单独指定分隔符
last_login DATE "YYYY-MM-DD HH24:MI:SS" NULLIF (last_login="NULL") --当字段为"NULL"时就是 NULL
)
BEGINDATA --数据从这里开始,USER_ID,USER_NAME,LOGIN_TIMES,LAST_LOGIN
1,1,Unmi,3,2009-1-5 20:34
2,2,Fantasia,5,2008-10-15
3,3,隔叶黄莺,8,2009-1-2
4,4,Kypfos,NULL,NULL
5,5,不知秋,1,2008-12-23


======================================================================
日期类型: op_time date "YYYY-MM-DD"
timestamp类型: so_date timestamp "YYYY-MM-DD HH24:MI:SS.ff"
使用Oracle函数: so_nbr "TRIM(:so_nbr)"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值