删除oracle数据库中的临时表

来源:互联网 发布:网络作家榜 编辑:程序博客网 时间:2024/05/16 14:12

由于数据库设计不够完善,每天会产生一个临时表(以时间为标识)

每天需删除前一天生成的文件,脚本如下:


#!/bin/bash#Oracle环境变量export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xeexport ORACLE_SID=XEexport PATH=$PATH:/u01/app/oracle/product/11.2.0/xe/bin#前一天的时间格式为20140101yesterday=`date -d last-day +%Y%m%d`#SQL语句后面需加“;”号#用于判断表是否存在isExist=`sqlplus -s username/password@xe <<EOF |grep KEEP |sed 's/KEEP//;s/[ ]//g'SELECT 'KEEP',COUNT(1) FROM USER_TABLES WHERE TABLE_NAME = UPPER('t_xxx$yesterday'); exitEOF`#-EOF带“-”会过滤每行开始的tab(空格不会过滤),不带“-”时,下面的EOF要顶头写if [ $isExist ]; then<span style="white-space:pre"></span>if [ $isExist -eq 1 ]; thensqlplus -s username/password@xe <<-EOFdrop table t_xxx$yesterday;exitEOFfifi


初学shell脚本,写的不是很规范,效率可能也存在问题(删一个表连接两次数据库),欢迎留言改进。




0 0
原创粉丝点击