Aquí está un ejemplo que he traducido de la documentación inglesa. Lo hice para mostrar porque sea necesario prestar atención con esta característica nueva. Lo probé en Oracle 12.1. Para empezar, creé una tabla SIN columnas invisibles:
SQL> create table tab1
2 (a number,
3 b number,
4 c number)
5 /
Tabla creada.
SQL> desc tab1
Nombre ¿Nulo? Tipo
-------------------------- -------- ------------------
A NUMBER
B NUMBER
C NUMBER
SQL>
SQL> alter table tab1 modify (b invisible)
Luego cambié columna B para hacerla invisible:
SQL> alter table tab1 modify (b invisible)
2 /
Tabla modificada.
SQL> desc tab1
Nombre ¿Nulo? Tipo
-------------------------- -------- ------------------
A NUMBER
C NUMBER
SQL>
Entonces la cambié para hacerla visible otra vez. Cuando se hace esto, Oracle pone la columna tras las otras columnas en la tabla. Así, el orden de las columnas ha sido cambiado de A, B, C a A, C, B:
SQL> alter table tab1 modify (b visible)
2 /
Tabla modificada.
SQL> desc tab1
Nombre ¿Nulo? Tipo
-------------------------- -------- ------------------
A NUMBER
C NUMBER
B NUMBER
SQL>