* .bat文件中的Oracle脚本文件执行未完成

时间:2013-11-18 04:42:51

标签: oracle batch-file windows-xp oracle9i

我有以下* .bat文件按计划执行。该文件由不同的任务组成,主要涉及每天将备份转储文件导出到测试数据库机器。

@echo off
@echo %time%
del C:\Factory\index.sql
echo exporting indexes...
Imp jksbschema/password file=C:\DBDUMP\jksb.dmp full=yes log=C:\Factory\log\dump_index.log indexfile=index.sql
@echo %time%
echo connecting to Oracle...
echo Delete and Re-Creation of User
sqlplus "sys/password as sysdba" @C:\Factory\script\step_1.sql
echo importing dump file begins...
@echo %time%
Imp jksbschema/password file=C:\DBDUMP\jksb.dmp full=yes log=C:\Factory\log\dump.log Compile=n INDEXES=n
echo Applying security priviledges
@echo %time%
sqlplus "sys/password as sysdba" @C:\Factory\script\step_2.sql
@echo %time%
ssr 0 "CONNECT" "REM CONNECT" C:\Factory\index.sql
echo Loading Indexes....`enter code here`
sqlplus "jksbschema/password as sysdba" @C:\Factory\index.sql
@echo %time%
exit
shutdown.exe -r -t 00

由于它是一个长时间的操作,我每天晚上都会自我执行,希望它能在第二天早上准备就绪。一旦整个过程结束,我还包括一个命令重启机器。所有命令都完成而不询问输入是否需要以下命令:

sqlplus "jksbschema/password as sysdba" @C:\Factory\index.sql

执行上述命令后,批处理文件要求输入退出流程,如下面的快照所示

enter image description here

任何人都可以自动完成作业并自行重启,而不是在加载index.sql文件后请求输入吗?

2 个答案:

答案 0 :(得分:3)

创建一个名为 quit.txt 的文件,在其中放置文本“quit”。

你看到执行sqlplus的行,如下所示:

sqlplus "jksbschema/password as sysdba" @C:\Factory\index.sql

将其更改为:

sqlplus "jksbschema/password as sysdba" @C:\Factory\index.sql < quit.txt

答案 1 :(得分:0)

旧东西,但是:让&#34;退出;&#34;是您的SQL脚本的最后一个命令。这告诉sqlplus退出并完成执行。