Shell 數據庫文件卸數成多個txt文件

/bin/bashsql

##############bash

腳本名稱:unload.shci

做者:get

描述:hash

參數描述:it

修改記錄:awk

###############date

if  [ $# lt 4 ]file

then select

     echo 「usage : $0 <sqlname><date><parallenum><says>」

    exit 1

fi

date

cd /th/in

if [ ! -d $4 ];

then mkdir $4

else 

   if [ ‘find $4 / -name $1_$2* |wc -l’ -gt 0 ] ;then

      rm -f $4/$1_*$2*

   fi

fi

if [ ! -f /th/sql/$1.sql ];

then 

   echo 「腳本不存在」

   echo 「run_sqlplus_command()=1」

  exit 1

fi

date

#並行生成卸數文件

if [ $1 -eq 1 ]; then

   filename=$1_1_$2.txt

/ocildr/bin/ocildr user=user pswd=pass dbname=orca sql=/th/$1.sql file=/th/in/$4/$filename array=50 

record=「0x0a」 field=「」 arg:date=$2

#sqlplus $DB<<EOF &

#/th/$1.sql $2 $filename

#EOF

 

 if [ $? -ne 0 ] ;then

  echo」run_sqlplus_command()=1」

  echo 「$filename文件生成失敗」

  exit 1

fi

 

else

  for ((i=1;i<=$3;i++)); do

       filename=$1_$(i)_$2.txt

      /ocildr/bin/ocildr user=user pswd=pass dbname=orca sql=/th/$1.sql file=/th/in/$4/$filename array=50 

           record=「0x0a」 field=「」 arg:date=$2 arg:slice=$i &

        #sqlplus $DB<<EOF &

           #/th/$1.sql $2 $filename $i

            #EOF

 

        if [ $? -ne 0 ] ;then

           echo」run_sqlplus_command()=1」

           echo 「$filename文件生成失敗」

            exit 1

          fi

done

fi

wait

date

 cd /th/in

num=‘find $4/ -name $1_*$2* | wc -l|awk ‘{print $1}’’

echo 「存在$num個匹配模式$1 的文件」

if [ $num -ge 1 ] && [ $num -le $3]; then

  sh /th/flag.sh 

    if [ $? -ne 0 ];

      then 

      exit 1

     fi

else

  echo 「應該生成」$3」個文件結果生成」$num」個文件」

  echo」run_sqlplus_command()=1」

  exit 1

fi

date

 

 

t.sql

select

rpad(nvl(a,’ ’),8,’ ’),

f_get_number(b*1000,15)

from tb

where date= :date

and dbms_utility.get_hash_value(a,1,8)=:slice

相關文章
相關標籤/搜索