签到成功

知道了

CNDBA社区CNDBA社区

12c 新特性-隐藏列

2016-09-07 17:47 2890 0 原创 Oracle 12C
作者: Expect-乐

隐藏列http://www.cndba.cn/Expect-le/article/247

在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.

--指定字段插入http://www.cndba.cn/Expect-le/article/247

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.修改字段为隐藏/可见字段http://www.cndba.cn/Expect-le/article/247http://www.cndba.cn/Expect-le/article/247

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


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


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

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

注意:临时表,外部表和集群表不支持不可见列
http://www.cndba.cn/Expect-le/article/247http://www.cndba.cn/Expect-le/article/247

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

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 invisible column

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Expect-乐

Expect-乐

关注

Without the continuous bitter cold, there can be no fragrant plum blossom

  • 336
    原创
  • 6
    翻译
  • 100
    转载
  • 41
    评论
  • 访问:1553791次
  • 积分:1957
  • 等级:核心会员
  • 排名:第4名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ