Как вернуть читабельный текст ошибки по ее коду?

Есть представление unified_audit_trail, в котором есть колонка RETURN_CODE.

В эту колонку записывается:

  • в случае успешно выполненного события аудита 0
  • а в случае не успеха, записывает код ошибки, например: 1917, 1939, 1031, и т.д.

Есть ли функция, которая позволит по этому коду вернуть читабельный текст ошибки?
Или нужно завести справочник всех ошибок?


Ответы (1 шт):

Автор решения: 0xdb

Да, такая функция есть — SQLERRM:

declare
    type errcodes is table of int;
    ec errcodes := errcodes (1917, 1939, 1031);
begin  
    for i in 1..ec.count loop 
        dbms_output.put_line (sqlerrm(-ec(i))); end loop;
end;
/
ORA-01917: user or role '' does not exist
ORA-01939: only the ADMIN OPTION can be specified
ORA-01031: insufficient privileges
→ Ссылка