batch-file - 如何将 Oracle SQL 脚本的返回码传递回调用它的批处理脚本?
问题描述
我正在运行 Windows 10-64 位和 Oracle 18.4 我有一个调用 Windows SQL 脚本文件的 Windows 批处理文件 (test1.bat)。
SQLPLUS -s (username)/(password) as sysdba @test1.sql
Echo %errorlevel%
然后,当我从 SQLPLUS 返回到 Test1.bat 时,我想对 %errorlevel% 变量进行一些错误检查。我将根据返回代码是 ORA-01940(无法删除当前连接的用户)还是 ORA-01918(用户 'MYUSER' 不存在)等创建不同的进程。
当我运行 test1.bat 时,我无法引用来自 Oracle SQLPLUS 的返回代码,即使之前删除了用户也是如此。批处理脚本生成
>Echo 0
0
如何将错误代码从 Oracle SQLPLUS 传递回调用它的批处理脚本?这是test1.sql
PROMPT Begin Dropping User Schema MyUser
Alter Session Set CONTAINER=(MyContainer);
Alter Session Set "_oracle_script"=true;
DROP user MYUSER cascade;
Whenever sqlerror exit sql.sqlcode;
EXIT;
解决方案
推荐阅读
- python - 如果列组合与 Panda Dataframe 相同,如何删除行
- php - 升级PHP和CakePHP(2.10.16)版本后数据库(MySql)新增字段不受影响
- javascript - 根据 Vue.js 中的其他组件名称做某事是一种好习惯吗?
- wordpress - 如何修复 wordpress 仪表板仅出现在 html 中
- regex - 如何分析哪一组十个数字是重复的?(乐透)
- npm - npm 无法在全局和本地安装某些包?
- powershell - 为什么这个 int 增加到 01 两次?
- jquery - jquery数据表的分页数据
- windows - 执行 PS 脚本时,Windows 进程失败,ExitCode = -1073741819
- android - 调用 AudioManager.setMode(MODE_NORMAL) 时如何修复具有 Android 8.0 和 8.1.0 特定 SecurityException 的三星?