you can't clean up the TEMP tablespace in local extent in 9i. It shows 98% full b/c Oracle preallocated the tablespaces. you should not worry about it unless you want to drop the temp and recreate the new one.
Temporary segments cleared when Database is shutdown.
A temporary segment created in temp tablespace will not be deallocated at the end of the sort. The extents are MARKED as free, are not placed back on the freelist, and are retained for reuse. An element called the Sort Extent Pool (SEP) is created in the SGA to describe them.
Subsequent sort operations will then be allocated extents from this pool via a memory lookup.
I got the same problem, I can release some space in TEMP after running this query :
SELECT b.tablespace, b.segfile#, b.segblk#, b.blocks, a.sid, a.serial#,a.username, a.osuser, a.status FROM v$session a,v$sort_usage b WHERE a.saddr = b.session_addr ORDER BY b.tablespace, b.segfile#, b.segblk#, b.blocks
Then kill the session which is holding the segments, if you have TOP Session utility from OEM it will be easier...
I'll give you guys a little tip also regarding Oracle 9i's TEMP tablespace DATATFILES that caught me a while ago.
Just say you have a 10 GB filesystem on UNIX, and we've decide to place a say... 2 4GB datafiles an a 2 GB Temp datafile under it.
If you check the size of the files system... you'll see that there is still 2GB left on the filesystem (even though you've allocated the full 10GB). This is because even though you specified the TEMP TABLESPACE 2GB it's not utilised on unix until the TEMP tablespace is written to. Therefore, a while down the track, somebody comes along and notices 1.5 GB of free filesystem space under the file system and creates another 1.5GB datafiles... guess what, when you're TEMP tablespace starts being used again... it runs out of space.