Oracle 12cのリリース以降、列を論理的に再配置することがより簡単になりました。
Oracle 12cでは、列を非表示にするためのサポートが追加され、その機能を使用して列を論理的に再配置できます。
非表示の列に関するドキュメントからの引用:
非表示の列を表示すると、その列は最後の列としてテーブルの列の順序に含まれます。
例
テーブルを作成します:
CREATE TABLE t (
a INT,
b INT,
d INT,
e INT
);
列を追加します:
ALTER TABLE t ADD (c INT);
列を中央に移動します:
ALTER TABLE t MODIFY (d INVISIBLE, e INVISIBLE);
ALTER TABLE t MODIFY (d VISIBLE, e VISIBLE);
DESCRIBE t;
Name
----
A
B
C
D
E
クレジット
これについては、TomKyteによるOracle12cの新機能に関する記事から学びました。