开始记录一些东西

一个生成CTL文件的SHELL

上一篇 / 下一篇  2008-06-25 14:14:40

#! /usr/bin/sh

cat filelist | while read line
do
        TableName=$line
        echo $TableName

        sqlstr="desc $TableName;"

        # a sql statement

        echo "set linesize 50">tmp.sql
        echo "spool "$TableName"_column.txt">>tmp.sql
        echo $sqlstr >>tmp.sql
        echo "quit;">>tmp.sql

        # execute the sql
        sqlplusUSER/PASSWORD@NETNAME  @tmp.sql >/dev/null

        awk '{if(NR!=1 && NR!=2) print $1}' $TableName'_column.txt' >1.txt
        sed '/^$/d' 1.txt > $TableName'_column.txt'

        ColName=''

        cat $TableName'_column.txt' | while read LINE
        do
                        ColName=$ColName$LINE','
        done

        echo "LOAD DATA\nINTO TABLE $TableName\nappend\nfields terminated by \"|#|#|\"\n(" > $TableName.ctl
        echo $ColName | sed 's/,$//' | awk -F, '{for(i=1;i<NF;i++) printf "%s,\n",$i } {print $NF}' >> $TableName.ctl
        echo ")" >> $TableName.ctl

done

-----------------------------------------

补充说明:filelist是一个文件,里面存放的是要生成ctl文件的表名,格式如下:

come_account

go_account

 


TAG: ctl文件 导入导出数据 shell

 

评分:0

我来说两句

huozheba

huozheba

测试leader 同步致力于提高测试人员整体技能素质

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 21907
  • 日志数: 35
  • 图片数: 1
  • 文件数: 2
  • 建立时间: 2008-06-20
  • 更新时间: 2012-06-16

RSS订阅

Open Toolbar