我有 4 个名为 test.bat 的文件,其中包含
@echo off
C:\oraclexe\app\oracle\product\10.2.0\server\BIN\sqlplus -s -l user/pass@localhost @E:\Oracle_Files\query.sql>E:\Oracle_Files\error.txt;
C:\oraclexe\app\oracle\product\10.2.0\server\BIN\sqlplus -s -l user/pass@localhost @E:\Oracle_Files\query1.sql>E:\Oracle_Files\error.txt
现在 query.sql 包含
WHENEVER SQLERROR EXIT SQL.SQLCODE
insert into mytable12 values('d');
exit;
并且 query1.sql 包含
WHENEVER SQLERROR EXIT SQL.SQLCODE
begin
insert into mytable1 values('d2');
end;
exit;
现在的问题是 REAL TABLE NAME 是 mytable1,所以这里的问题是我想在错误出现在脚本下方时立即停止执行批处理文件,错误不应该被执行,并且错误errorlog.txt
文件内容被替换为“ 1 row updated
”,这意味着我的以前的错误消息被覆盖,我该如何停止呢?
简而言之有2个问题
- 如何在错误时停止进一步执行脚本,尤其是 1 个脚本文件。
- 如何防止覆盖日志文件中的日志