查询Oracle的ORA-代码错误的详细信息(Query Oracle for ORA-code e

2019-09-21 02:44发布

我问:你如何查询一个11克Oracle数据库获得的错误代码的说明?

背景:有人告诉我,他们看到的代码,一旦这将查询Oracle对一个具体的细节ORA-code错误。 我一直在寻找,现在谷歌上一小会儿,似乎无法找到这样的事情。 有谁知道这是否可能? 是否有它什么AV $视图?

为什么:我想写这将返回错误代码我给它描述的过程。 因此,当它是写我可以这样称呼它:

select ora_code_desc('ORA-00000')
from dual;

而且,它还将输出:

Normal, successful completion.
Cause: An operation has completed normally, having met no exceptions.
Action: No action required.

或类似的东西:)感谢您的帮助!

Answer 1:

这不是从SQL访问,但PL / SQL中,你可以使用SQLERRM功能。

例如

SQL> ed
Wrote file afiedt.buf

  1  begin
  2    dbms_output.put_line( sqlerrm(0) );
  3    dbms_output.put_line( sqlerrm(-1041) );
  4* end;
SQL> /
ORA-0000: normal, successful completion
ORA-01041: internal error. hostdef extension doesn't exist

PL/SQL procedure successfully completed.

你可以,当然,建立一个ora_code_desc是参加了一个字符串函数,去掉了前三个字符,通过所产生的数量SQLERRM ,并返回结果

SQL> ed
Wrote file afiedt.buf

  1  create or replace function ora_code_desc( p_code in varchar2 )
  2    return varchar2
  3  is
  4    l_str varchar2(1000);
  5  begin
  6    l_str := sqlerrm( substr(p_code, 4 ) );
  7    return l_str;
  8* end;
SQL> /

Function created.

SQL> select ora_code_desc( 'ORA-00000' ) from dual;

ORA_CODE_DESC('ORA-00000')
--------------------------------------------------------------------------------
ORA-0000: normal, successful completion

Oracle还船舶在Unix平台上的实用程序OERR提供特别的原因,并采取行动,你正在寻找更多的detail--。 如果你真的想要的是数据量太大,你可以写一个Java存储过程调用出操作系统外壳,执行的oerr命令,并返回结果。 这会给你更多的数据,但会很明显,复杂得多。



Answer 2:

您正在寻找的SQLERRM功能。



Answer 3:

在命令行

oerr ora <error number>

输出:

oerr ora 1501
01501, 00000, "CREATE DATABASE failed"
// *Cause:  An error occurred during create database
// *Action: See accompanying errors.


Answer 4:

在完整的利益,我想指出的是,Oracle文档确实包含了所有的错误,不只是的完整列表ORA的。 这些还含有一种解释和建议采取的行动一样oerr效用 。

我知道开发人员喜欢编写查询,而不是RTFM。 但是,如果你仿佛置身复古的,你可以在这里找到它 。



文章来源: Query Oracle for ORA-code error details