ORA-25152: TEMPFILE cannot be dropped at this time

Check whether the tempfile is being used by users.

SQL> show parameter db_files
SQL> SELECT file#, name from v$tempfile;
SQL> SELECT s.sid, s.serial#, s.username, s.status, u.tablespace, u.segfile#, u.contents, u.extents, u.blocks
FROM v$session s, v$sort_usage u
WHERE s.saddr=u.session_addr
ORDER BY u.tablespace, u.segfile#, u.segblk#, u.blocks;

SQL> select sid, username, osuser, program, machine from v$session where sid in (<sid returned from above query>);

The segfile# from v$sort_usage corresponds to the sum of the value for parameter db_files and the value for file# from v$tempfile.

Close / Kill the sessions referenced in the query.

SQL> SELECT s.sid, s.serial#, s.username, s.status, u.tablespace, u.segfile#, u.contents, u.extents, u.blocks
FROM v$session s, v$sort_usage u
WHERE s.saddr=u.session_addr
ORDER BY u.tablespace, u.segfile#, u.segblk#, u.blocks;  

no rows selected

SQL> alter database tempfile '+DATA/TESTDB/TEMPFILE/temp.264.1157213559' drop including datafiles;

Database altered.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.