Desde el lanzamiento de Oracle 12c, ahora es más fácil reorganizar las columnas de forma lógica.
Oracle 12c agregó soporte para hacer que las columnas sean invisibles y esa función se puede usar para reorganizar las columnas de forma lógica.
Cita de la documentación sobre columnas invisibles:
Cuando hace visible una columna invisible, la columna se incluye en el orden de columnas de la tabla como la última columna.
Ejemplo
Crear una tabla:
CREATE TABLE t (
a INT,
b INT,
d INT,
e INT
);
Añadir una columna:
ALTER TABLE t ADD (c INT);
Mover la columna al medio:
ALTER TABLE t MODIFY (d INVISIBLE, e INVISIBLE);
ALTER TABLE t MODIFY (d VISIBLE, e VISIBLE);
DESCRIBE t;
Name
----
A
B
C
D
E
Créditos
Me enteré de esto en un artículo de Tom Kyte sobre las nuevas funciones en Oracle 12c.