1. 程式人生 > >文件批量入庫腳本

文件批量入庫腳本

腳本 lena AS dev load data 追加 bash 數據庫 sqlplus

#!/bin/bash
filedir=
tablename=
inm=`awk ‘$2=="‘${tablename}‘" {
if ($6=="1"){print $6
}else{
print $6}
}‘ 入庫關系對應表.txt` #確認增量,全量
ses=`awk ‘$2=="‘${tablename}‘" {
if ($6=="1"){print $3
}else{
print $3}
}‘ 入庫關系對應表.txt` #取分隔符
echo "spool $tablename.temp;
desc $tablename;
spool off; "|sqlplus -S 數據庫登錄用戶和密碼 >>/dev/null
if [ ${inm} -eq 1 ];then #當為增量時,采用追加入庫
n=`cat $tablename.temp|wc -l`
cat $tablename.temp|sed -n "3,$n p"|awk ‘{print $1,$NF}‘|sed ‘$d‘|awk ‘BEGIN{
print "load data"
print "append"
print "into table ‘$tablename‘"
print "fields terminated by ‘\‘‘‘${ses}‘‘\‘‘"
print "(" } { if($2~/DATE/)
{print $1" date ‘\‘‘yyyy-mm-dd HH24:mi:ss‘\‘‘""," } eles
{print $1 " CHAR " "," } } ‘| sed ‘$s/,//‘|sed ‘$a )‘>${tablename}.ctl
else #當為全量時,采用覆蓋入庫
n=`cat $tablename.temp|wc -l`
cat $tablename.temp|sed -n "3,$n p"|awk ‘{print $1,$NF}‘|sed ‘$d‘|awk ‘BEGIN{
print "load data"
print "truncate"
print "into table ‘$tablename‘"
print "fields terminated by ‘\‘‘‘${ses}‘‘\‘‘"
print "(" } { if($2~/DATE/)
{print $1" date ‘\‘‘yyyy-mm-dd HH24:mi:ss‘\‘‘""," } eles
{print $1 " CHAR " "," } } ‘| sed ‘$s/,//‘|sed ‘$a )‘>${tablename}.ctl
fi

文件批量入庫腳本