执行 .sql 文件时如何获取 oracle 错误

Posted

技术标签:

【中文标题】执行 .sql 文件时如何获取 oracle 错误【英文标题】:How to get oracle error while execute .sql file 【发布时间】:2019-07-05 07:27:00 【问题描述】:

当我执行一个对我有用的 .sql 文件时,我怎么会得到 oracle 错误,即Alter,当发生错误时,假设&3 参数错误,然后引发 oracle 异常。我怎么能从命令行获取这个异常到java?有没有可能这样做还是没有?

【问题讨论】:

您是否尝试从 java 代码启动 SQL*Plus 【参考方案1】:

要让 SQL*Plus 返回错误代码,请使用 whenever sqlerror exit sql.sqlcode; 启动脚本。我不确定 Java 如何与操作系统返回代码一起工作,但这里有一个示例显示它在 DOS 命令提示符下工作:

SQL> whenever sqlerror exit sql.sqlcode;
SQL> select * from dual where this_column_doesnt_exist = 1;
select * from dual where this_column_doesnt_exist = 1
                         *
ERROR at line 1:
ORA-00904: "THIS_COLUMN_DOESNT_EXIST": invalid identifier


Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

C:\>echo Exit Code is %errorlevel%
Exit Code is 904

【讨论】:

以上是关于执行 .sql 文件时如何获取 oracle 错误的主要内容,如果未能解决你的问题,请参考以下文章

尝试从过程中获取数据时:PL/SQL - 数字或值错误

Java中的Oracle Sql语句

oracle中如何获取最后执行的SQL语句并绑定变量值

如何清除oracle中的执行sql记录在日志里面的的记录

如何获取Oracle数据库中sql语句的执行时间

在 Oracle 中执行 DELETE 查询时如何重现异常