【发布时间】:2015-10-06 01:59:39
【问题描述】:
我正在尝试在 bat 文件中运行以下命令
echo exit | sqlplus -S TEST_VKR/vkr@Oracle C:\users\vkr\scripts\Master.sql > Output.txt
Master.sql有如下内容
@@ 01_Script.sql;
@@ 02_Script.sql;
@@ 03_Script.sql;
@@ 04_Script.sql;
这些脚本在 Master.sql 中单独运行时不会返回错误。 Master.sql 中只有前 3 个脚本文件不会返回错误。当所有 4 个脚本在 Master.sql 中一起运行时,我怀疑 03 和 04 之间的重叠导致了错误。
有没有办法在 Master.sql 文件中的 sql 脚本之间添加等待步骤?
【问题讨论】:
-
尝试将
@@更改为一个@ -
错误是什么,脚本在做什么,为什么您认为“重叠”是问题的原因?除非其中一个脚本使用 DBMS_JOB 或 DBMS_SCHEDULER 启动后台进程,否则脚本 3 中的任何命令都应在调用脚本 4 中的命令之前运行完成。
-
我收到“无法打开文件”错误。注意:bat文件在不同的文件夹,脚本在不同的文件夹
-
您的具体问题的一个答案是有一个小的 PL/SQL 块调用 DBMS_LOCK.SLEEP 等待一段时间;但我怀疑你的诊断。
-
那么脚本 4 调用了错误消息中引用的各种脚本?它们与主脚本在同一个文件夹中还是在不同的文件夹中?你是用@还是@@给他们打电话?听起来您只是在确定这些脚本的正确路径时遇到了问题。
标签: sql oracle batch-file oracle11g oracle12c