Does Oracle Streams replicate unused columns?
That seems a large setup effort just to reclaim space from an unused column.  If you really want to recover that space (and presumably not take an outage to achieve it) you could look at DBMS_REDEFINITION

SQL&gt; create table t ( x int primary key , y int, fatcol char(1000) );

Table created.

SQL&gt; insert into t
  2  select rownum, rownum, rownum
  3  from dual
  4  connect by level &lt;= 10000;

10000 rows created.

SQL&gt;
SQL&gt; select bytes from user_segments where segment_name = 'T';

     BYTES
----------
  12582912

1 row selected.

SQL&gt;
SQL&gt; alter table t set unused column fatcol;

Table altered.

SQL&gt;
SQL&gt; CREATE TABLE small_t as
  2  SELECT *
  3  FROM   t
  4  where 1=0;

Table created.

SQL&gt;
SQL&gt; EXEC DBMS_REDEFINITION.start_redef_table(user, 'T', 'SMALL_T');

PL/SQL procedure successfully completed.

SQL&gt;
SQL&gt; ALTER TABLE SMALL_T ADD (CONSTRAINT SMALL_T_PK PRIMARY KEY (x));

Table altered.

SQL&gt; EXEC DBMS_REDEFINITION.finish_redef_table(user, 'T', 'SMALL_T');

PL/SQL procedure successfully completed.

SQL&gt;
SQL&gt; select bytes from user_segments where segment_name = 'T';

     BYTES
----------
    196608

1 row selected.