ORA-12906 cannot drop default temporary tablespace
In this post I have shown how to solve the error ORA-12906: cannot drop default temporary tablespace.
Let's have a look about temporary tablespace assigned to users SHAIK, PROD and SCOTT.
So These users are assigned to TEMP temporary tablespace.
Now have a look at database default tablespace.
SQL> select PROPERTY_VALUE from database_properties
where property_name = 'DEFAULT_TEMP_TABLESPACE';
PROPERTY_VALUE
--------------------------------------------------------------------------------
TEMP
Whenever you try to drop database default tablespace it fails with error ORA-12906.
SQL> drop tablespace temp;
drop tablespace temp
*
ERROR at line 1:
ORA-12906: cannot drop default temporary tablespace
In order to solve this problem you must assign database default tenporary tablespace to a new one.
To do this create a new tempoary tablespace temp2 and then assign it to database default tablespace.
To create a new one,
SQL> create temporary tablespace temp2 tempfile '/oradata2/temp2.dbf' size 10M;
Tablespace created.
To make this new one to database default temporary tablespace,
SQL> alter database default temporary tablespace temp2;
Database altered.
After chaging database default temporary tablespace you will notice all user's temporary tablespace are also changed.
You can easily drop by,
SQL> drop tablespace temp;
Tablespace dropped.
Let's have a look about temporary tablespace assigned to users SHAIK, PROD and SCOTT.
SQL> select username, temporary_tablespace from dba_users where username in ('SHAIK','SCOTT','PROD');
USERNAME TEMPORARY_TABLESPACE
------------------------------ ------------------------------
SHAIK TEMP
PROD TEMP
SCOTT TEMP
So These users are assigned to TEMP temporary tablespace.
Now have a look at database default tablespace.
SQL> select PROPERTY_VALUE from database_properties
where property_name = 'DEFAULT_TEMP_TABLESPACE';
PROPERTY_VALUE
--------------------------------------------------------------------------------
TEMP
Whenever you try to drop database default tablespace it fails with error ORA-12906.
SQL> drop tablespace temp;
drop tablespace temp
*
ERROR at line 1:
ORA-12906: cannot drop default temporary tablespace
In order to solve this problem you must assign database default tenporary tablespace to a new one.
To do this create a new tempoary tablespace temp2 and then assign it to database default tablespace.
To create a new one,
SQL> create temporary tablespace temp2 tempfile '/oradata2/temp2.dbf' size 10M;
Tablespace created.
To make this new one to database default temporary tablespace,
SQL> alter database default temporary tablespace temp2;
Database altered.
After chaging database default temporary tablespace you will notice all user's temporary tablespace are also changed.
SQL> select username, temporary_tablespace from dba_users where username in ('SHAIK','SCOTT','PROD');
USERNAME TEMPORARY_TABLESPACE
------------------------------ ------------------------------
SHAIK TEMP2
PROD TEMP2
SCOTT TEMP2
You can easily drop by,
SQL> drop tablespace temp;
Tablespace dropped.
Comments
Post a Comment