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.
感谢您选择使用ERMEB域名授权离线网络验证系统(简称:ERMEB域名授权系统)是ERMEB团队开发,ERMEB域名授权系统是国内最稳定,最强大,最先进的域名授权管理平台解决方案之一,ERMEB域名授权系统采用PHP +Mysql的技术,ERMEB域名授权系统框架使用Thinkphp6/mysql数据库基于Markdown开发者文档开发而成,项目安装请参考ThinkPHP官方文档及下面的服务环境说
0
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
可以看到,不同的会话参数,显示结果不同。

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号