shell MySQL卸数_Shell 数据库文件卸数成多个txt文件

本文介绍了一个使用Shell脚本批量将MySQL数据库中的数据导出为多个TXT文件的方法。脚本首先检查参数,然后创建目标目录,接着根据指定条件执行SQL查询并将结果保存到TXT文件中。如果已存在同名文件,则会先删除。脚本使用ocildr工具进行数据导出,并支持并行生成文件。最后,脚本验证生成文件的数量是否符合预期,并调用另一个脚本进行后续处理。
摘要由CSDN通过智能技术生成

/bin/bash

##############

脚本名称:unload.sh

作者:

描述:

参数描述:

修改记录:

###############

if  [ $# lt 4 ]

then

echo “usage : $0 ”

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<

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值