In 11g Oracle came up with Invisible Indexes and Virtual Columns. In 12 c, Oracle has introduced Invisible Columns also.
Earlier, we used to create a view to hide important data –columns from being displayed or apply some sort of security conditions. In 12c R1, you can now have an invisible column in a table. When a column is defined as invisible, the column won’t appear in generic queries, unless the column is explicitly referred to in the SQL statement or condition, or DESCRIBED in the table definition.
SQL> CREATE TABLE employee (empno number(10), empname name varchar2(40), salary number(9) INVISIBLE);
SQL> ALTER TABLE employee MODIFY (salary visible);
Temporary tables, external tables and cluster tables won’t support invisible columns.