Oracle DB でカラムの順序を変更するには

Oracle DB でカラムの順序を入れ替えたりするには、ALTER TABLE では操作できないので、以下のように操作する。

-- 元となる table_1 からカラム順を変更して SELECT し、table_2 を作る
CREATE TABLE table_2 AS SELECT column_c, column_b, column_a FROM table_1;

-- table_1 を削除する
DROP TABLE table_1;
-- 削除するのが怖ければリネームして退避する
-- RENAME table_1 TO table_before;

-- 先ほど作成した table_2 を table_1 にリネームして元に戻す
RENAME table_2 TO table_1;

このように、カラム順を変更したいテーブルのコピーを CREATE TABLE ... AS SELECT で作れば良い。