Heim >Datenbank >MySQL-Tutorial >Oracle 12c 数据库内归档

Oracle 12c 数据库内归档

WBOY
WBOYOriginal
2016-06-07 17:35:12989Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn