In-Database Archiving を使用する [12c新機能]
12cでは、レコード単位で表示・非表示を制御可能となった。
create table コマンドに、row archival 句を指定することで、
テーブルに非表示設定用の列(ora_archive_state)が追加される。
この ora_archive_state 列には、デフォルトで非表示を示す 0 が入り、
0 以外の値を指定すると、そのレコードが表示される仕組みとなっている。
テーブル作成
SQL> create table hoge(col1 number(10), col2 char(10)) row archival;
row archival 句を付けて、テーブル作成後に user_tab_cols テーブルを
参照すると、hidden_column が YES になっていることがわかる。
row archival visibility パラメータで表示させる
ora_archive_state 列は、desc コマンドや 通常の select * from … では
表示されないが、 row archival visibility パラメータを設定すれば表示される。
SQL> alter session set row archival visibility=ALL;
SQL> select hoge.*, ora_archive_state from hoge;
SQL> alter session set row archival visibility=ACTIVE;
アクティブ列のみとなる。
非表示機能を無効化したい場合
SQL> alter table hoge no row archival;
no row archival でデフォルト通り、アクティブ列のみとなる。