Bonjour,

Afin de comprendre comment fonctionne oracle, j'essaye de réduire au maximum un tablespace ne contenant aucune données.

Pour test, j'ai crée un tablespace TOTO constitué d'un seul datafile ,avec comme paramètre : UNIFORM SIZE=16k

Actuellement il fait 60M.

Je me suis donc dit que je pourrais le réduire à 16k (1 extents). Sauf que non:

ALTER DATABASE DATAFILE '/var/tmp/TOTO.dbf' RESIZE 16K;
ALTER DATABASE DATAFILE '/var/tmp/TOTO.dbf' RESIZE 16K
*
ERROR at line 1:
ORA-03214: File Size specified is smaller than minimum required


Dans dba_extents, je n'ai aucune ligne concernant ce datafile, vu que je n'ai aucune données dedans.

Je me suis donc dit que j'allais essayer avec la vue dba_free_space
J'ai essayé de réduire à taille total du datafile - espace_libre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
  SELECT b.bytes AS TOTAL,f.bytes AS ESPACE_LIBRE FROM dba_data_files b,dba_free_space f WHERE   
                b.file_name='/var/tmp/TOTO.dbf'
                AND b.file_id=f.file_id;
Ce qui m'a donné :
62914560 - 62849024 = 65536 soit 64k

Sauf que pareil le resize ne fonctionne pas
Après différents essais, j'arrive à redimensionner le datafile à 73K

Pourrais t'on m'expliquer d'où sort cette valeur ?