You are here

track ora-1652 errors

thanks to tom!  A script based on one posted at
http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:374218170986

create table extent_message (
at date not null,
entry_type varchar2(20) not null,
line number,
msg varchar2(4000) not null
);

create or replace trigger failed_to_extend_temp
after servererror on database
declare
    l_sql_text ora_name_list_t;
    l_n        number;
begin
    if ( is_servererror(1652) )
    then
        insert into extent_message (at, entry_type, msg)
        values ( SYSDATE, 'ora_sysevent', ora_sysevent );
        insert into extent_message (at, entry_type, msg)
        values ( SYSDATE, 'ora_login_user', ora_login_user );
        insert into extent_message (at, entry_type, msg)
        values ( SYSDATE, 'ora_server_error', ora_server_error(1) );

                l_n := ora_sql_txt( l_sql_text );
                for i in 1 .. l_n
                loop
                        insert into extent_message (at, entry_type, line, msg)
                        values ( SYSDATE, 'l_sql_text', i, l_sql_text(i) );
                end loop;
    end if;
end;
/