码迷,mamicode.com
首页 > 其他好文 > 详细

文件批量入库脚本

时间:2018-04-13 19:02:31      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:spool   文件   SQ   $2   field   app   off   批量   txt   

#!/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

文件批量入库脚本

标签:spool   文件   SQ   $2   field   app   off   批量   txt   

原文地址:https://www.cnblogs.com/Alisonman/p/8822528.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!