在一些場景中,當我們不需要表中的某些行時,需要釋出delete語句來删除。但是有時候并不是
想在實體上真正的删除這些資料,在傳統的表設計中,我們一般都加多一個欄位來表示邏輯删除。
比如is_delete,當應用程式在處理時,把is_delete也加入到where條件中來表示行是不是真正的删除了.
在12C中,引入了一個新特性叫作row archive,可以讓資料庫自動來做這些操作.這個特性也叫作In-Database Archiving.
SQL> create table employees_test as select * from employees;
Table created.
SQL> select count(*) from employees_test where department_id=80;
SQL> alter table employees_test row archival;
Table altered.

在允許row archival後,系統會自動會表增加欄位ORA_ARCHIVE_STATE,用來表示資料可用性情況
改變session變可見
本文轉自whshurk 51CTO部落格,原文連結:http://blog.51cto.com/shurk/2056646,如需轉載請自行聯系原作者