No Oracle, a exclusão de linhas de uma tabela não libera automaticamente nenhum espaço em disco. É possível liberar espaço em disco, mas para conseguir isso você precisa descobrir como as tabelas são colocadas fisicamente nos arquivos de dados. Assim que um arquivo de dados tiver blocos vazios no final, você poderá redimensionar o arquivo de dados para um tamanho menor. Somente após essa operação bem-sucedida, você recupera o espaço em disco real. Se você tiver muitos blocos vazios em um arquivo de dados, mas não no final, pode ser mais fácil mover as tabelas do espaço de tabela ao qual o arquivo de dados pertence em um novo espaço de tabela e descartar o espaço de tabela antigo. Isso não funcionará para o espaço de tabela SYSTEM, você não tem permissão para mover objetos SYS para um outro espaço de tabela.
Às vezes você tem sorte quando pode mover apenas uma pequena tabela que bloqueou a liberação de espaço porque foi colocada no final de um arquivo de dados. Nesse caso, um simples alter table thesmalltable move;
realocará essa tabela e criará espaço recuperável no final do arquivo de dados [s]. Depois disso, alter database datafile '/your/df/name.dbf' resize the_new_size;
libera espaço em disco.
Uma tabela é logicamente colocada em um tablespace. Um tablespace consiste em um mínimo de 1 arquivo de dados, em muitos casos múltiplos arquivos de dados.