Hi,
I want to trap the objects, sqls and program name when there is ora-54 error in my database.Now I have written the follwing trigger :

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(54) )
then
insert into sql_temp_segment_error_tab values ( 'ora_sysevent = ' || ora_sysevent );
insert into sql_temp_segment_error_tab values ( 'ora_login_user = ' || ora_login_user );
insert into sql_temp_segment_error_tab values ( 'ora_server_error = ' || ora_server_error(1));
if (ora_space_error_info(l_error_number,l_error_type,l_object_owner,l_table_space_name,l_object_name,l_ sub_object_name) = TRUE)
then
insert into sql_temp_segment_error_tab values ( 'l_error_number = ' || l_error_number);
insert into sql_temp_segment_error_tab values ( 'l_error_type = ' || l_error_type);
insert into sql_temp_segment_error_tab values ( 'l_object_owner = ' || l_object_owner);
insert into sql_temp_segment_error_tab values ( 'l_table_space_name = ' || l_table_space_name);
insert into sql_temp_segment_error_tab values ( 'l_object_name = ' || l_object_name);
insert into sql_temp_segment_error_tab values ( 'l_sub_object_name = ' || l_sub_object_name);
end if;
l_n := ora_sql_txt( l_sql_text );
for i in 1 .. l_n
loop
insert into sql_temp_segment_error_tab values ( 'l_sql_text(' || i || ') = '|| l_sql_text(i) );
end loop;
insert into sql_temp_segment_error_tab values (to_char(sysdate,'dd/mm/yyyy hh24:mi:ss'));
insert into sql_temp_segment_error_tab values('END');
end if;
end;

Through the above code , I cann't trap the objects causing the error (ora-54). Through this trigger I want to trap
the object. I am looking for helps in this regard. I want to enhance this program. Any new idea is always appreciated. Here if I trap the sql, then this statement will be the right one ?

Deba