首页  >  文章  >  数据库  >  更新oracle数据库的shell脚本

更新oracle数据库的shell脚本

WBOY
WBOY原创
2016-06-07 16:35:211546浏览

这是一个使用脚本更新数据库的一个例子.运行环境是bash shell,shell的第一个参数是go,第二个参数是sql文件的一个列表. 第一个参数实际上没有什么意义,但是它最好还是存在,它存在的目的是:不知道这个shell执行效果的人万一要运行这个脚本,在不添加go参数的时

这是一个使用脚本更新数据库的一个例子.运行环境是bash shell,shell的第一个参数是go,第二个参数是sql文件的一个列表.

第一个参数实际上没有什么意义,但是它最好还是存在,它存在的目的是:不知道这个shell执行效果的人万一要运行这个脚本,在不添加go参数的时候是不会执行的.从而保证数据库的安全.第二个参数是一个文件列表,格式如下:

tablename1,table1_sql.txt tablename2,table2_sql.txt tablename是用来更新的表的名字,table2_sql.txt得文件的内容是一些插入,更新,删除的sql语句。

具体的shell如下:

#! /bin/sh #下面是一个环境设定 TS_SYSTEM_DATE=`date ‘+%m%d%H%M%S’` TS_ZHIXING_DATE=`date ‘+%Y%m%d’` ORA_USR=${userid}/${password}@${instance}

TS_LOG_PATH=${LOG_DIR}/setup if test -d ${TS_LOG_PATH} then TS_RCODE=0 else mkdir -m 777 ${TS_LOG_PATH} fi TS_DBBACKUP_PATH=${DBBACKUP_DIR}/${TS_ZHIXING_DATE}_DBBACKUP if test -d ${TS_DBBACKUP_PATH} then TS_RCODE=0 else mkdir -m 777 -p ${TS_DBBACKUP_PATH} fi

TS_LOGFILE=${TS_LOG_PATH}/SQL_EXEC_${TS_SYSTEM_DATE}.log TS_QIAN=”QIAN” TS_HOU=”HOU” #SQL执行的LOG TS_SQL_JIKKOU=./SQLJIKKOU_${TS_SYSTEM_DATE}.dat

TS_RCODE=0

#下面3个函数是抽取出来的公共函数。重复用到多次,所以从shell主函数中提出来了。 #这个是检查表是否存在 table_exist_check() { #下面的这个语句是得到一个表存在的个数。一般为0,或1,表存在为1,没有表为0 TMPSTR=`echo $(sqlplus -s ${ora_userid}/${ora_password}@${instance}

if [[ "${TABLE_NUM}" == "0" ]]; then # echo “表${1}的个数是0个`date`”| tee -a ${TS_LOGFILE} TS_RCODE=1 rm -r ${TS_INPUT_FILE} exit ${TS_RCODE} else echo “” echo “++所处理TABLE,$1存在” return 0 fi }

#表更新前后的数据,分别取出来,然后diff,看是否达到预期效果. table_QIAN_HOU() {

sqlplus -s ${ora_userid}/${ora_password}@${instance} /dev/null set colsep’,’; set echo off; set [...]

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn