【问题标题】:Oracle Script File Execution in *.bat file not completing*.bat 文件中的 Oracle 脚本文件执行未完成
【发布时间】:2013-11-18 04:42:51
【问题描述】:

我有以下 *.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

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

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

【问题讨论】:

  • 在执行sqlplus时,是否可以将
  • 你的意思是说在 index.sql 文件的末尾有命令“

标签: oracle batch-file windows-xp oracle9i


【解决方案1】:

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

您在哪里看到执行 sqlplus 的行,例如:

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

把它们改成这样:

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

【讨论】:

  • 或者只是重定向来自index.sql的输入,将@替换为&lt;; SQL*Plus 将在输入用完时退出,即使脚本中没有明确的exit。 (我假设重定向在 Windows 中有效......)
  • @LachlanB,非常感谢!它运作良好。再次感谢! (y)亚历克斯普尔,也不要忘记你! (y)
【解决方案2】:

老东西,但是:让“退出;”成为 SQL 脚本的最后一个命令。这告诉 sqlplus 退出并完成执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多