免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1730 | 回复: 0
打印 上一主题 下一主题

[新手入门] AIX下自动执行Oracle中的sql语句 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-24 22:46 |只看该作者 |倒序浏览
在日常的工作中,我们经常要使用crontab计划自动执行shell程序。例如:数据备份、日志清理、机器重启等等。前些时候,有朋友问:为什么使用crontab自动执行oracle的sql语句不能实现。下面我就讲述一下如何自动执行oracle的sql语句。
首先,建立一个sql文件,并且在sqlplus中测试,手工运行这个sql文件看是否能够成功:
test.sql文件内容:
select count(*) from test;
然后进入sqlplus:
sqlplus  scott/tiger
运行test.sql文件:
SQL>start test.sql
如果显示了sql语句的结果,则表示此sql文件能够正常执行。
其次,我们建立一个shell文件,要注意的是这个shell文件中必须将oracle的初始环境设置加上去,才能让unix系统能够执行sqlplus程序,下面给出一个shell例子(文件名test.sh):
ORACLE_OWNER=oracle
ORACLE_TERM=vt100
DISPLAY=`hostname`:0.0
ORACLE_SID=test
ORACLE_USER=$HOME
ORACLE_BASE=/disk01/oracle
ORACLE_HOME=$ORACLE_BASE/product/8.1.7
ORACLE_DOC=$ORACLE_HOME/doc
NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/ccs/lib
PATH=$PATH:$ORACLE_HOME/bin:/bin:/usr/ccs/bin:/usr/local/bin
TEMP=/tmp
TMPDIR=/tmp
export ORACLE_OWNER ORACLE_TERM DISPLAY ORACLE_SID ORACLE_USER ORACLE_BASE ORACLE_HOME ORACLE_DOC NLS_LANG ORA_NLS33 LD_LIBRARY_PATH PATH TEMP TMPDIR

cd /usr/test/sql
/disk01/oracle/product/8.1.7/bin/sqlplus scott/tiger
@ test.sql
exit
EOF
最后,我们建立一个crontab计划,让unix定期执行:
00 20 * * * /usr/test/sql/test.sh
就此,一个自动执行sql语句的crontab就建成了。大家可以通过mail检查crontab的执行情况。



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/4779/showart_160203.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP