微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

UNIX主机文件导入数据库方法以及sqlldr在AIX主机使用方法

sqlldr使用方法

DATABASE=admin/password@INSTANCE_NAME

sqlldr $DATABASE data=TEMP.txt control=temp.ctl skip=1 load=200000 errors=100 rows=1000 bindsize=33554432


参数说明:
$DATABASE //数据库连接
data //原数据文件
control //sqlldr控制文件位置
skip=1 //表示跳过第一行,从第二行开始导入
load=200000 //表示并不导入所有的数据,只导入跳过skip参数后的200000条数据
rows=1000 //表示一次加载的行数,认值为64,此处设置为1000
errors=100 //表示出错100次后,停止加载
bindsize=33554432 //表示每次提交记录缓冲区的大小,认256k




temp.ctl 内容 数据用换行分割
load data
append
INTO TABLE testtable
trailing nullcols
(
testdate terminated by '\r\n'
)


test.txt 文件数据
------------------head---------------
000001
000002
000003
000004


文件导入例子

DATABASE=admin/password@INSTANCE_NAME for FILENAME in `ls test.txt` do awk -F. '{print $0}' $FILENAME>TEMP_$FILENAME.txt echo "\n读取数据" #获取文件行数 num=`cat $FILENAME|wc -l` #一般文件都有首行说明不需要入库可以删除统计实际行数 recnum=`expr $num-1` sqlldr $DATABASE data=TEMP_$FILENAME.txt control=temp.ctl skip=1 load=$recnum rm TEMP_$FILENAME.txt echo "读取数据结束" done sqlplus -s $DATABASE << EOF set heading off Feedback off pagesize 0 verify off echo off exit; EOF

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐