Posts tagged: ORA-1652

Sep 11 2009

Trigger to Capture the Temp Tablespace Error ORA-1652

SQL> create table test ( msg varchar2(4000) );

Table created.

SQL> 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 test values ( ‘ora_sysevent = ‘ || ora_sysevent );
insert into test values ( ‘ora_login_user = ‘ || ora_login_user );
insert into test values ( ‘ora_server_error = ‘ || ora_server_error(1) );
l_n := ora_sql_txt( l_sql_text );
for i in 1 .. l_n
loop
insert into test values ( ‘l_sql_text(‘ || i || ‘) = ‘ || l_sql_text(i) );
end loop;
end if;
end;

Trigger created.

SQL> create temporary tablespace test_temp tempfile ‘/tmp/test_temp.dbf’ size 512k reuse extent management local uniform size 64k;

Tablespace created.

SQL> create user temptest identified by temptest;

User created.

SQL> grant connect,resource to temptest;

Grant succeeded.

SQL>

SQL> alter user temptest temporary tablespace test_temp;

User altered.

SQL> conn temptest/temptest
Connected.
SQL>

SQL> select * from all_objects order by 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12;

SQL> select * from test;

SQL> drop table test;

SQL> ALTER DATABASE TEMPFILE ‘/tmp/test_temp.dbf’ DROP INCLUDING DATAFILES;

SQL> DROP TABLESPACE test_temp INCLUDING CONTENTS;

SQL> DROP TRIGGER failed_to_extend_temp;

Alibi3col theme by Themocracy