用SHELL判断存储过程是否运行成功

#!/bin/bash

## sh /data/task_scheduler.sh schema.proc_test

##传入存储过程名参数
proc_name=$1   



echo "**************连接数据库*********************"
db2 connect to database
if [ $? -ne 0 ]; then
    echo "连接失败"
	exit 1
else
    echo "连接成功"
fi


##从账期表获取需要跑的日期,也可直接传参使用
SQL="select substr(to_char(date(dw_date),'yyyymmdd'),1,8) from schema.task_scheduler_date"
dwdate=`db2 -x "$SQL"`
echo ${dwdate}


export TMOUT=0

echo $TMOUT

##创建LOG路径
mkdir -p /data/log/${dwdate}


echo "**************START**************************"
##此处使用DB2举例,其它存储过程原理一样
db2 "call ${proc_name}('${dwdate}',?,?)" > /data/log/${dwdate}/${proc_name}.log


echo "判断是否成功"
##此处根据sql的返回状态码值判断,也可根据自己存储过程最终的返回信息判断
suc_ind=`tail -10 /data/log/${dwdate}/${proc_name}.log |grep -i "Return Status = 0"|wc -l`
echo $suc_ind

suc_indd=`tail -10 /data/log/${dwdate}/${proc_name}.log |grep -i "返回状态 = 0"|wc -l`
echo $suc_indd


chmod 777 /data/log/${dwdate}/${proc_name}.log
cat /data/log/${dwdate}/${proc_name}.log




if [ $suc_ind -ne 1 ]; then
if [ $suc_indd -ne 1 ]; then
    echo "存储过程${proc_name}运行失败"
    echo "ERROR"
  	exit 1
fi
fi





if [ $? -ne 0 ]; then
    echo "SHELL运行失败"
    echo "ERROR"
	exit 1
fi

echo "SUCCESSFUL"
echo "**************END****************************"
exit 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值