#!/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
转载于:https://www.cnblogs.com/Alisonman/p/8822528.html