Shell练习(3)_连接数据库并分析表

本文介绍了一个用于Oracle数据库的Shell脚本,该脚本通过SQL*Plus执行表统计信息的分析任务。它首先记录开始时间并连接到数据库进行连接测试,然后执行具体的SQL命令来分析指定表的统计数据,并记录完成时间。此外,脚本还包含了错误检测机制确保运行过程中的问题能够被及时发现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/sh

now=`date +"%Y%m%d %A %T"`
echo "${now}    /START AnalyzeTest">>D:/IDBCDB/test/AnalyzeTest/TestMaster.log

# 一時ファイルの指定
spoolFile="D:/IDBCDB/test/AnalyzeTest/AnalyzeTest.log"

# DB接続情報の取得
confFile="D:/IDBCDB/test/AnalyzeTest/oracon_newbiz.conf"
userid=`grep '^userid' ${confFile} | cut -d= -f2`
passwd=`grep '^passwd' ${confFile} | cut -d= -f2`
constr=`grep '^constr' ${confFile} | cut -d= -f2`
svaddr=`grep '^svaddr' ${confFile} | cut -d= -f2`
port=`grep '^port' ${confFile} | cut -d= -f2`

# DB接続テスト  如果环境变量里设好了  这里可以不写
#CLASSPATH="${ORACLE_HOME}/jdbc/lib/classes12.zip;"
#export CLASSPATH

java connectTest ${svaddr} ${port} ${constr} ${userid} ${passwd}

echo $?
if [ $? -ne 0 ];then
        exit 1
fi
# SQLの実行
$ORACLE_HOME/bin/sqlplus -s ${userid}/${passwd}@${constr}  << END > /dev/null 2>&1

spool ${spoolFile}
prompt *************************************************************************
prompt 業績DSUB転換テーブルアナライズ
prompt *************************************************************************
--< TimeStamp >-----------------------------------------------------------------
select
        To_char(sysdate,'yyyymmdd hh24:mi:ss') アナライズ開始日時
from
        dual
/
-----------------------------------------------------------------< TimeStamp >--
analyze table NEWBIZ.GUIMING_TABLE_20100312 estimate statistics sample 5 percent
/
--< TimeStamp >-----------------------------------------------------------------
select
        To_char(sysdate,'yyyymmdd hh24:mi:ss') アナライズ完了日時
from
        dual
/
-----------------------------------------------------------------< TimeStamp >--
spool off
exit ;
END

# ORACLEエラーの検知
grep 'ORA-[0-9]\{5\}:' ${spoolFile} > /dev/null 2>&1
if [ $? -eq 0 ];then
        exit 1
fi

now=`date +"%Y%m%d %A %T"`
echo "${now}    \END  AnalyzeTest">>D:/IDBCDB/test/AnalyzeTest/TestMaster.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值