11g中对象细粒度管理一例

 

11g中oracle提供了细粒度的对象管理。如:视图所依赖的表若发生结构变化,在10g及以前版本中会导致视图失效,而在11g中,若结构变化未影响视图,则视图仍然有效。

在11g中:

SQL> drop table t;

Table dropped

SQL> create table t as select * from emp;

Table created

SQL> create view v_t as select ename,deptno from t;

View created

SQL> select status from dba_objects where object_name='V_T';

STATUS
-------
VALID

SQL> alter table t add a varchar2(2);

Table altered

SQL> select status from dba_objects where object_name='V_T';

STATUS
-------
VALID

 

在10g中:

SQL> drop table t;

Table dropped

SQL> create table t as select * from emp;

Table created

SQL> create view v_t as select ename,deptno from t;

View created

SQL> select status from dba_objects where object_name='V_T';

STATUS
-------
VALID

SQL> alter table t add a varchar2(2);

Table altered

SQL> select status from dba_objects where object_name='V_T';

STATUS
-------
INVALID

 

若视图是select * from table得到的,即使将视图对应的表增加列,视图也不会失效。

SQL> create view v_t2 as select * from t;

View created

SQL> select status from dba_objects where object_name='V_T';

STATUS
-------
VALID

SQL> alter table t add b varchar2(2);

Table altered

SQL> select status from dba_objects where object_name='V_T';

STATUS
-------
VALID

删除一列,视图依然无动于衷:

SQL> alter table t drop column a;

Table altered

SQL> select status from dba_objects where object_name='V_T';

STATUS
-------
VALID

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26451536/viewspace-756473/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26451536/viewspace-756473/

你可能感兴趣的:(11g中对象细粒度管理一例)