Oracle12c 新機能 不可視列

人気ブログランキング

Oracle12cで、カラムを見えなくさせる機能が実装された。
しかし、12c新機能 不可視列 - Invisible column にある通り、invisible にした後、visible に戻すとディクショナリ上のカラム順番が変わるらしい。
いや~使えん機能だこと。
マニュアル へのリンクが記事上切れていたので貼っておく。

試してみるともっとやばい事象が発生。
1.A, B というカラムで T テーブル作る。
2.INSERT INTO T VALUES( 1, 2);
3.A を invisible⇒ visibleとする
 desc すると、B、Aという順番になる
4.INSERT INTO T VALUES( 3, 4);
5.select * from T
B A
1 2
3 4
というカオス結果となる。ディクショナリ上の定義は変わっているが、
データ上の順番は変わっていないので、変更前に入れたデータは古い場所のまま。
データ上のカラムの順番を知るすべはないので、データが入っている状態でやると何がどうなったかトレース不可能。

カラムの順番を変える裏技に使えるかな?と思ったが、絶対に使ってはいけない機能だと認識した。

この記事へのコメント