#!/bin/ksh
################################################################################
# 脚本名称 : runjob_ora_proc.sh
# 描述 : 调用ORACLE存储过程接程序
# 参数描述 : v_proc_name 存储过程名
# v_par_date 调度日期
# v_db_sid 数据库实例
# v_db_name 数据库用户名
# v_db_pwd 数据库密码
#
# 修改记录 :
################################################################################
if [ $# -ne 5 ]
then
echo "Usage:sh $0 <proc_name> <par_date> <db_sid> <db_name> <db_pwd>"
echo " eg:sh $0 SP_SHODSB_TEST 20091218 odsbptdb shodsb shodsbpwd"
exit 2
fi
# 参数设置
v_proc_name=$1
v_par_date=$2
v_db_sid=$3
v_db_name=$4
v_db_pwd=$5
v_logfile=${LOGDIR}/run_log/${v_par_date}/${v_proc_name}.${v_par_date}.log
#建立目录
if [ ! -d ${LOGDIR}/run_log ];then
mkdir ${LOGDIR}/run_log
if [ $? -ne 0 ];then
echo "建立${LOGDIR}/run_log失败!"
exit 9
fi
fi
if [ ! -d ${LOGDIR}/run_log/${v_par_date} ];then
mkdir ${LOGDIR}/run_log/${v_par_date}
if [ $? -ne 0 ];then
echo "建立${LOGDIR}/run_log/${v_par_date}失败!"
exit 9
fi
fi
if [ ! -d ${v_logfile} ];then
touch ${v_logfile}
if [ $? -ne 0 ];then
echo "建立${v_logfile}失败!"
exit 9
fi
fi
echo "-------------------------------------------------------" >>${v_logfile}
echo `date '+%Y-%m-%d %T'` "程序开始执行..." >>${v_logfile}
echo "v_proc_name = $v_proc_name" >>${v_logfile}
echo "v_par_date = $v_par_date" >>${v_logfile}
echo "v_db_sid = $v_db_sid" >>${v_logfile}
echo "v_db_name = $v_db_name" >>${v_logfile}
echo "v_db_pwd = ******" >>${v_logfile}
sqlplus -S $v_db_name/$v_db_pwd@$v_db_sid << ! >>${v_logfile}
set serveroutput on
var flag number;
exec :flag:=1
exec SP_CALL_PROC('$v_proc_name','$v_par_date',:flag);
exit :flag
!
if [ $? -eq 0 ]
then
echo `date '+%Y-%m-%d %T'` "程序成功结束..." >>${v_logfile}
exit 0
else
echo `date '+%Y-%m-%d %T'` "程序执行失败..." >>${v_logfile}
exit 1
fi