SQL*Loader加载数据

本文介绍了如何使用SQL*Loader工具将.dat数据文件导入到数据库表中,分别展示了定长分隔和以'|'分隔的数据文件导入方法,并详细说明了控制文件的创建和DOS命令的使用。同时提到了防止中文乱码的方法以及如何设置行号和过滤某一列。

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

SQL*Loader是一个命令行下的操作工具,对应的操作系统命令是SQLLDR,注意Linux/UNIX环境中对命令的大小写敏感,执行的命令应为小写:sqlldr
(1)已知数据库中有表test1
如何把一个.dat的数据文件导入到数据库表test1中呢:
-------test1.dat     定长分隔
10001     chenxicai
10002312  madengmei
10003     chenkeju
10004     LisarDon
10005     tongjiahong
-------test2.dat     “|”分隔
20001|liujingjing
20002312|wangyang
20003|zhaoxueqin
20004|yanglele
20005|chengjili
I、先建2个关于它们的控制文件:
-------test1.ctl
load data 
infile 'E:\sqlldr\test1.dat'
append into table test1  --追加
(
id position(1:10)     
,name position(11:21)
)
-------test2.ctl
load data 
infile 'E:\sqlldr\test1.dat'
truncate into table test1    --先删除已有数据再将新数据插入
fields terminated by "|"      --双引号
(
id,name 
)
II、然后在DOS命令中>sqlldr scott/tiger control='E:\sqlldr\test1.ctl'  --注意不带分号 

:::::::注意哟::::::::
1、控制文件中注释用“--”
2、为防止导入出现中文乱码,在控制文件中加入字符集控制
LOAD DATA
CHARACTERSET ZHS16GBK 
3、让某一列成为行号,用RECNUM关键字
load data  
infile *  
into table t  
replace  
( seqno RECNUM   //载入每行的行号  
text Position(1:1024))  
BEGINDATA  
fsdfasj
4、过滤某一列,用FILLER关键字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值