I agree with EdStevens' comment, but here are some other ideas:
The AskTom website has a script that will list exactly how much you can shrink the existing data files.
If that doesn't yield much savings, you can find the biggest indexes on that tablespace and rebuild them; that is a temporary solution and the indexes would eventually get big again, but if budget doesn't allow more disk space now, try this query:
select segment_name, sum(bytes)/1024/1024 as mb
where tablespace_name='TB1' and segment_type like 'INDEX%'
group by segment_name
order by mb;
Then if you find an index named
ind_big_stuff is huge, then
alter index ind_big_stuff rebuild;
Also, if your application is a commercial application, there may be several tables with zero rows. Or if you have partitioned tables, you may have some partitions with zero rows. You can drop space allocated to them with
You can use the
segment creation deferred clause on an alter table statement for things like partitioned tables, or tables you know will not have any rows.