首页 > 数据库 > mysql教程 > Oracle 12c 数据库内归档

Oracle 12c 数据库内归档

WBOY
发布: 2016-06-07 17:35:12
原创
997 人浏览过

Oracle 12c有一个新特性,能够在数据库内归档,将不常访问的数据对应用隐藏起来,设置为inactive状态。当然也可以在会话级别进行

Oracle 12c有一个新特性,能够在数据库内归档,将不常访问的数据对应用隐藏起来,,设置为inactive状态。当然也可以在会话级别进行显示。这是通过参数ROW ARCHIVAL VISIBILITY来实现的,该参数可以设置为两个值,active或all。active为显示活动的数据,all为显示所有数据,包括inactive的数据。

  现举例说明:

 SQL> create table test(id int,name varchar2(10));
Table created.
SQL> alter table test ROW ARCHIVAL;
Table altered.
SQL> insert into test values(1,'col1');
1 row created.
SQL> insert into test values(2,'col2');
1 row created.
SQL> commit;


SQL> COL DATA_TYPE FOR A10
SQL> COL COLUMN_NAME FOR A20

SQL> SELECT COLUMN_NAME, DATA_TYPE,  HIDDEN_COLUMN, CHAR_LENGTH  FROM USER_TAB_COLS WHERE TABLE_NAME='TEST';

COLUMN_NAME            DATA_TYPE  HID  CHAR_LENGTH
--------------------                      ----------    ---              -----------
ORA_ARCHIVE_STATE    VARCHAR2  YES        4000
NAME                                VARCHAR2  NO          10
ID                                        NUMBER    NO            0

SQL> col ora_archive_state for a20

SQL> select id,name,ora_archive_state from test;

 

        ID NAME      ORA_ARCHIVE_STATE
---------- ---------- --------------------
        1 col1              0
        2 col2              0

 


默认情况下,ora_archive_state列的值为0,其意味着没有在数据库归档。

SQL> update test set ora_archive_state='1' where id=1;

1 row updated.

SQL> commit;

Commit complete.

SQL> select * from test;

        ID NAME
---------- ----------
        2 col2
可以看到,修改的那上数据已经看不到了。

SQL> ALTER SESSION SET ROW ARCHIVAL VISIBILITY = ALL;

Session altered.

SQL> select * from test;

        ID NAME
---------- ----------
        1 col1
        2 col2
SQL> ALTER SESSION SET ROW ARCHIVAL VISIBILITY=active;

Session altered.

SQL> select * from test;

        ID NAME
---------- ----------
        2 col2

可以看到,不同的会话参数,显示结果不同。

linux

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板