Oracle
 sql >> база данни >  >> RDS >> Oracle

Запитване до Oracle за подробности за грешки в ORA-код

Не е достъпен от 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, която извиква обвивката на операционната система, изпълнява oerr команда и върна резултата. Това ще ви даде повече данни, но очевидно ще бъде много по-сложно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle - Създайте индекс само ако не съществува

  2. Вътрешни заявки на една таблица с условия IN и NOT IN

  3. Oracle SQL Developer - Как да възстановите изпусната таблица

  4. Задайте NLSLANG без разделител за хиляди

  5. Конфигуриране на Oracle XStream