首页 > 代码库 > 12c 新特性-隐藏列
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 a10SQL> select * from test_a;NAME AGE---------- ----------lei 25lei 25
--指定字段查询
SQL> select name,age,sal from test_a;NAME AGE SAL---------- ---------- ----------lei 25lei 25 5000
2.修改字段为隐藏/可见字段
SQL> alter table test_a modify(sal visible);Table altered.SQL> select * from test_a;NAME AGE SAL---------- ---------- ----------lei 25lei 25 5000
SQL> alter table test_a modify(sal invisible);Table altered.SQL> select * from test_a;NAME AGE---------- ----------lei 25lei 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 新特性-隐藏列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。