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

你可能感兴趣的:(unix)