5

ALL_TAB_COLS differs from ALL_TAB_COLUMNS in that hidden columns are not filtered out.

What are hidden fields?

This view differs from "ALL_TAB_COLUMNS" in that hidden columns are not filtered out.

Oh Chin Boon
  • 23,028
  • 51
  • 143
  • 215

2 Answers2

9

Hidden columns are columns that exist in the table but that cannot be selected. There are various reasons that Oracle might create a hidden column-- two of the more common reasons are

  • When a column is marked as unused but not dropped, it is hidden
  • Oracle virtual columns create hidden columns in the table

Various other Oracle features may create hidden columns as well though those features tend to be more esoteric (i.e. if memory serves, interMedia creates a couple of hidden columns to track various bits of data).

Justin Cave
  • 227,342
  • 24
  • 367
  • 384
  • 1
    "Oracle virtual columns create hidden columns in the table" that's not quite right. Virtual columns are not hidden (they will show up in select * from table). Oracle added explicit "invisible"/hidden columns only in 12c. – Tagar Dec 17 '14 at 21:41
  • Hidden columns are also used to support temporal validity - where you can have enhanced date/time queries of data as it existed at a point in time. See http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/ilm/temporal/temporal.html – Mark Stewart Jun 23 '16 at 21:17
4

Oracle uses them internally (see http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96594/adobjadv.htm) AND you can define such columns for your own tables... when accessed without proper authorization they display NULL instead of the real value (see http://www.techrepublic.com/article/hide-sensitive-data-with-oracle-10g-column-masking)...

linuxatico
  • 1,878
  • 30
  • 43
Yahia
  • 69,653
  • 9
  • 115
  • 144