调存储过程shell

来源:互联网 发布:查找学位论文的数据库 编辑:程序博客网 时间:2024/05/29 16:46
#!/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 2fi# 参数设置v_proc_name=$1v_par_date=$2v_db_sid=$3v_db_name=$4v_db_pwd=$5v_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    fifi 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    fifi if [ ! -d ${v_logfile} ];then    touch ${v_logfile}    if [ $? -ne 0 ];then        echo "建立${v_logfile}失败!"        exit 9    fifi 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 0else  echo `date '+%Y-%m-%d %T'` "程序执行失败..." >>${v_logfile}  exit 1fi

0 0
原创粉丝点击