these numbers are counted from instance startup, if you (or something) shrinks a segment - does some reorg on it, it could be negative.
ops$tkyte%ORA11GR2> create table t enable row movement
2 as
3 select *
4 from all_objects;
Table created.
ops$tkyte%ORA11GR2>
ops$tkyte%ORA11GR2> select owner, object_name, value ,
2 (
3 select bytes
4 from user_segments
5 where segment_name = 'T'
6 ) alloced
7 from v$segment_statistics
8 where statistic_name = 'space used'
9 and owner = user
10 and object_name = 'T'
11 /
OWNER OBJECT_NAME VALUE ALLOCED
------------------------------ ------------------------------ ---------- ----------
OPS$TKYTE T 8511488 9437184
ops$tkyte%ORA11GR2>
ops$tkyte%ORA11GR2> delete from t;
72946 rows deleted.
ops$tkyte%ORA11GR2> commit;
Commit complete.
ops$tkyte%ORA11GR2>
ops$tkyte%ORA11GR2> select owner, object_name, value ,
2 (
3 select bytes
4 from user_segments
5 where segment_name = 'T'
6 ) alloced
7 from v$segment_statistics
8 where statistic_name = 'space used'
9 and owner = user
10 and object_name = 'T'
11 /
OWNER OBJECT_NAME VALUE ALLOCED
------------------------------ ------------------------------ ---------- ----------
OPS$TKYTE T 1021337 9437184
ops$tkyte%ORA11GR2>
ops$tkyte%ORA11GR2> connect / as sysdba
Connected.
sys%ORA11GR2> startup force;
ORACLE instance started.
Total System Global Area 535662592 bytes
Fixed Size 1346140 bytes
Variable Size 356517284 bytes
Database Buffers 171966464 bytes
Redo Buffers 5832704 bytes
Database mounted.
Database opened.
sys%ORA11GR2> connect /
Connected.
ops$tkyte%ORA11GR2> set linesize 10000
ops$tkyte%ORA11GR2>
ops$tkyte%ORA11GR2>
ops$tkyte%ORA11GR2> select owner, object_name, value ,
2 (
3 select bytes
4 from user_segments
5 where segment_name = 'T'
6 ) alloced
7 from v$segment_statistics
8 where statistic_name = 'space used'
9 and owner = user
10 and object_name = 'T'
11 /
no rows selected
ops$tkyte%ORA11GR2> alter table t shrink space;
Table altered.
ops$tkyte%ORA11GR2>
ops$tkyte%ORA11GR2> select owner, object_name, value ,
2 (
3 select bytes
4 from user_segments
5 where segment_name = 'T'
6 ) alloced
7 from v$segment_statistics
8 where statistic_name = 'space used'
9 and owner = user
10 and object_name = 'T'
11 /
OWNER OBJECT_NAME VALUE ALLOCED
------------------------------ ------------------------------ ---------- ----------
OPS$TKYTE T -1020354 65536