在Oracle 11g R1中,Oracle以不可见索引和虚拟字段的形式引入了一些不错的增强特性。继承前者并发扬光大,Oracle 12c 中引入了不可见字段思想。在之前的版本中,为了隐藏重要的数据字段以避免在通用查询中显示,我们往往会创建一个视图来隐藏所需信息或应用某些安全条件。
   在12c中,你可以在表中创建不可见字段。当一个字段定义为不可见时,这一字段就默认不会出现在通用查询中,除非在SQL语句或条件中有显式的提及这一字段,或是在表定义中有DESCRIBED。要添加或是修改一个不可见字段是非常容易的,反之亦然。

实验:
1. 创建一个表,指定passwd为不可见字段
SQL>create table invisible_t(id int,name varchar2(20),passwd varchar2(20) invisible);
2. 向表中插入数据
SQL>insert into invisible_t values(1,'andy',1);
ERROR at line 1:
ORA-00913: too many values
SQL> insert into invisible_t(id,name,passwd) values(1,'andy',1);

1 row created.
SQL> insert into invisible_t(id,name) values(2,'andy02');

1 row created.

3. 查询情况
SQL> select * from invisible_t;

ID NAME
---------- --------------------
1 andy
2 andy02

SQL> select id,name from invisible_t;

ID NAME
---------- --------------------
1 andy
2 andy02

SQL> select id,name,passwd from invisible_t;

ID NAME PASSWD
---------- -------------------- --------------------
1 andy 1
2 andy02

4.修改字段为可见字段或不可见字段
SQL> alter table invisible_t modify(passwd visible);

Table altered.

SQL> select * from invisible_t;

ID NAME PASSWD
---------- -------------------- --------------------
1 andy 1
2 andy02

SQL> alter table invisible_t modify(passwd invisible);

Table altered.

SQL> select * from invisible_t;

ID NAME
---------- --------------------
1 andy
2 andy02
-- 创建时未指定为不可见字段,若之后想修改为不可见字段,也可以。
SQL>  alter table invisible_t modify(name invisible);

Table altered.

SQL> alter table invisible_t modify(name visible);

Table altered.

oracle 12c 新特性之不可见字段的更多相关文章

  1. oracle 12c 新特性之(相同字段上的多重索引、ddl 日志、限制PGA的大小、分页查询)

    1. 相同字段上的多重索引   在Oracle 12c R1之前,一个字段是无法以任何形式拥有多个索引的.或许有人会想知道为什么通常一个字段需要有多重索引,事实上需要多重索引的字段或字段集合是很多的. ...

  2. Oracle 12C 新特性之扩展数据类型(extended data type)

    Oracle 12C 新特性-扩展数据类型,在12c中,与早期版本相比,诸如VARCHAR2, NAVARCHAR2以及 RAW这些数据类型的大小会从4K以及2K字节扩展至32K字节.只要可能,扩展字 ...

  3. Oracle 12c新特性

    转载自:Oracle 12c新特性(For DBA) 一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性 ...

  4. ORACLE 12C新特性——CDB与PDB

    Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库( ...

  5. Oracle 12C 新特性之 PDB热克隆(本地克隆、远端异机克隆)

    说明:版本12.2.0.1 12c r1版本中 clone 一份PDB源库需要打开在read only只读模式 , 在12c r2版本中引入了local undo mode, 源PDB在read/wr ...

  6. Oracle 12c新特性之——TABLE ACCESS BY INDEX ROWID BATCHED

    Oracle12c开始,我们在获取SQL语句的执行计划时,也会经常看到"TABLE ACCESS BY INDEX ROWID BATCHED"操作,那么,这个操作到底是什么意思呢 ...

  7. Oracle 12c新特性(For DBA)

    一: Multitenant Architecture (12.1.0.1)      多租户架构是Oracle 12c(12.1)的新增重磅特性,内建的多分租(Multi-tenancy),一个容器 ...

  8. Oracle 12C 新特性之 db默认字符集AL32UTF8、PDB支持不同字符集

    一. db默认字符集AL32UTF8Specify the database character set when you create the database. Starting from Ora ...

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

    Oracle Database 12c中引入了 In-Database Archiving的新特性, 该特性允许用户通过对表上的数据行标记为inactive不活跃的,以归档数据. 这些inactive ...

随机推荐

  1. c/c++的一些小知识点2

  2. redis持久化AOF详细操作步骤

    1.切换到redis目录下面,创建文件 s3-redis.conf 2.编辑文件s3-redis.conf 3.终止当前redis服务端 4.登录redis客户端失败,说明服务端已停止 5.重启red ...

  3. ubuntu查看Mysql是否已启动

    sudo netstat -tap | grep mysql 命令行输出: tcp6       0      0 [::]:mysql              [::]:*             ...

  4. C++学习笔记30,指针的引用(2)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/guang_jing/article/details/32910093 能够创建不论什么类型的引用,包 ...

  5. scala如何解决类型强转问题

    scala如何解决类型强转问题 scala属于强类型语言,在指定变量类型时必须确定数据类型,即便scala拥有引以为傲的隐式推到,这某些场合也有些有心无力. 例如: java同属强类型语言,但java ...

  6. ubuntu service XXX start启动报start: Rejected send message, 1 matche

    service cron restart命令报错如下: stop: Rejected send message, 1 matched rules; type="method_call&quo ...

  7. java搭建 SpringMVC+Mybatis(SMM)+mybatis-generate

    搭建SSM系统,首先要了解整个过程: 1.创建spring-mvc项目 2.在maven中添加要引用的jar包(使用框架都是较新的版本:) 3. jdbc.xml +spring-mybatis.xm ...

  8. 【leetcode刷题笔记】Distinct Subsequences

    Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence ...

  9. Never Go Away

    Hey if you ever want to leave it allif you ever want to lose control leave it all escape so far away ...

  10. MySQL部署时Table 'mysql.plugin' doesn't exist的解决

    今天部署了免安装版的MySQL,出现了Table 'mysql.plugin' doesn't exist的问题,苦恼了好久,终于在网上找到了解决方案,现整理一下给大家分享: 系统环境:Win10 6 ...