gpt4 book ai didi

sql - 查询 Oracle 以获取 ORA 代码错误详细信息

转载 作者:行者123 更新时间:2023-12-04 02:54:27 26 4
gpt4 key购买 nike

我的问题:如何查询 11g Oracle 数据库以获取错误代码的描述?

背景:有人告诉我他们曾经看过代码,它会查询 oracle 以获取特定 ORA-code 的详细信息。错误。我已经在谷歌上搜索了一段时间,似乎找不到类似的东西。有谁知道这是否可能?是否有 v$view 之类的?

为什么:我想编写一个程序,该程序将返回我提供给它的错误代码的描述。所以当它写出来时,我可以这样称呼它:

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.

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

最佳答案

它不能从 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这提供了更多细节——尤其是您正在寻找的原因和行动。如果你真的想要这些数据,你可以编写一个 Java 存储过程来调用操作系统 shell,执行 oerr命令,并返回结果。这将为您提供更多数据,但显然会复杂得多。

关于sql - 查询 Oracle 以获取 ORA 代码错误详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11892043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com