最近在网上看到不少朋友在讨论如何在WINDOWS下通过批处理脚本运行SQL的话题。在UNIX下的话,写SHELL比WINDOWS下写BAT要简单的多,就不再多说了。

关于WINDOWS下如何编写BAT文件,此文不做介绍。下面就以一个通过BAT脚本停止Oracle数据库的过程来简单的师范一下BAT和SQL脚本的结合.

第一步:先写个BAT文件ctl_ora.bat,内容如下:
sqlplus /nolog @d:stop_ora.sql > ora.log

第二步:编写停止Oracle的SQL脚本[stop_ora.sql],内容如下:
connect /as sysdba;
shutdown immediate;
exit;


第三步:测试.运行ctl_ora.bat文件 
E:>sqlplus /nolog @d:stop_ora.sql 1>ora.log

检查执行日志ora.log
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 6月 10 20:15:00 2006

Copyright (c) 1982, 2005, Oracle. All rights reserved.

已连接。
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开


关于在BAT中执行其他的SQL脚本,大家只要照着改改就可以了。不再多说了

第一步
:先写个BAT文件ctl_ora.bat,内容如下:

sqlplus /nolog @d:stop_ora.sql > ora.log

第二步:编写停止Oracle的SQL脚本[stop_ora.sql],内容如下:
connect /as sysdba;
shutdown immediate;
exit;


第三步:测试.运行ctl_ora.bat文件 
E:>sqlplus /nolog @d:stop_ora.sql 1>ora.log

检查执行日志ora.log
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 6月 10 20:15:00 2006

Copyright (c) 1982, 2005, Oracle. All rights reserved.

已连接。
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开


关于在BAT中执行其他的SQL脚本,大家只要照着改改就可以了。不再多说了

---------------------------------------------------------------------

假如你把需要的SQL操作信息等均放入到一个SQL文件中,需要制作一个bat文件来执行这个sql文件,那么你的bat文件中,在sqlplus登录语句后的信息不能换行,换行的话则执行登录sqlplus后就不再运行后面的命令。
例如执行c盘根目录下的一个sql文件:a.sql,你的bat批处理应该这么写(注意sqlplus):
sqlplus username/password@instanceNname @c:/a.sql
当然,别忘记了在a.sql的最后加入:quit命令。

10-04 02:50