12c 新特性-隐藏列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12c 新特性-隐藏列相关的知识,希望对你有一定的参考价值。

隐藏列

在11G中,Oracle就引入了不可见索引和虚拟字段的形式。12c继续发扬光大,引入了不可见字段。

之前的版本我们往往会创建视图来隐藏某些字段,12c中so easy。

在12c中,你可以创建通过invisible关键词来创建/修改某个字段为不可见。这一字段在查询中不会出现,除非指定这个字段。同样插入数据的时候也一样,默认是不向不可见字段插数据。

如:

1.创建一个新表,并指定sal为隐藏字段

SQL> create table test_a(name varchar2(50),age number,sal number invisible);
Table created.
SQL> select * from test_a;
no rows selected

--不指定字段插入:

SQL> insert into test_a values(‘lei‘,25,5000);
insert into test_a values(‘lei‘,25,5000)
            *
ERROR at line 1:
ORA-00913: too many values

 

--默认是不向不可见字段插数据。

 

SQL> insert into test_a values(‘lei‘,25);
1 row created.

--指定字段插入

SQL> insert into test_a(name,age,sal) values(‘lei‘,25,5000);
1 row created.

--不指定字段,则不显示隐藏字段

SQL> col name for a10
SQL> select * from test_a;
NAME  AGE
---------- ----------
lei   25
lei   25

--指定字段查询

SQL> select name,age,sal from test_a;
NAME  AGE     SAL
---------- ---------- ----------
lei   25
lei   25    5000

2.修改字段为隐藏/可见字段

SQL> alter table test_a modify(sal visible);
Table altered.
SQL> select * from test_a;
NAME  AGE     SAL
---------- ---------- ----------
lei   25
lei   25    5000

 

 

SQL> alter table test_a modify(sal invisible);
Table altered.
SQL> select * from test_a;
NAME  AGE
---------- ----------
lei   25
lei   25

注意:临时表,外部表和集群表不支持不可见列

如:

 

SQL> create global temporary table test_b as select * from test_a;
Table created.

没有不可见字段

SQL> desc test_b;
 Name   Null?    Type
 ----------------------------------------- -------- ----------------------------
 NAME    VARCHAR2(50)
 AGE    NUMBER

修改为不可见字段

SQL> alter table test_b modify(age invisible);
alter table test_b modify(age invisible)
            *
ERROR at line 1:
ORA-54042: Invisible column is not supported on this type of table.

不支持。

 

转:http://www.cndba.cn/Expect-le/article/247

以上是关于12c 新特性-隐藏列的主要内容,如果未能解决你的问题,请参考以下文章

Oracle12c中数据删除(delete)新特性之数据库内归档功能

Oracle 12c 新特性之 数据库内归档(In-Database Archiving)

11g新特性与12c新特性

甲骨文大学网络直播:聚焦Oracle Database 12c新特性

浅谈oracle 12C的新特性-CDB和PDB

浅谈oracle 12C的新特性-CDB和PDB