Invisible field
In Oracle 11g R1, Oracle introduced some nice enhancements in the form of invisible indexes and virtual fields. Inheriting the former and carrying forward, the idea of invisible fields is introduced in Oracle 12c R1. In previous versions, in order to hide important data fields to avoid displaying in generic queries, we used to create a view to hide the required information or apply certain security conditions. In 12c R1, you can create invisible fields in the table. When a field is defined as invisible, it does not appear in a generic query unless the field is explicitly mentioned in the SQL statement or condition, or there is a DESCRIBED in the table definition. It is very easy to add or modify an invisible field, and vice versa.
SQL > create table invisible_t (id int,name varchar2 (20) passwd varchar2 (20) invisible)
Table created.
SQL > insert into invisible_t values (1)
Insert into invisible_t values (1)
*
ERROR at line 1:
ORA-00913: too many values
SQL > insert into invisible_t (id,name,passwd) values (1)
1 row created.
SQL > alter table invisible_t modify (passwd invisible)
Table altered.
SQL > desc invisible_t
Name Null? Type
ID NUMBER (38)
NAME VARCHAR2 (20)
SQL > SET COLINVISIBLE ON
SQL > desc invisible_t
Name Null? Type
ID NUMBER (38)
NAME VARCHAR2 (20)
PASSWD (INVISIBLE) VARCHAR2 (20)
SQL > SET COLINVISIBLE Off
SQL > desc invisible_t
Name Null? Type
ID NUMBER (38)
NAME VARCHAR2 (20)