Search notes:

Oracle: SYS.OBJ$

select
   usr.name   obj_owner,
   obj.name   obj_name,
   case when bitand(obj.flags, power(2,  1)) <> 0 then 'tmp' end temporary,            -- KQDOBTMP
   case when bitand(obj.flags, power(2,  7)) <> 0 then 'rb'  end in_recycle_bin,          
   case when bitand(obj.flags, power(2, 16)) <> 0 then 'mdl' end meta_data_link,       -- KQDOBF_MD_LINK   -- Compare with the SHARING=EXTENDED DATA clause in the CREATE VIEW statement
   case when bitand(obj.flags, power(2, 17)) <> 0 then 'dl'  end data_link,            -- KQDOBF_OBJ_LINK  -- Formerly OBL
   case when bitand(obj.flags, power(2, 27)) <> 0 then 'fed' end fedaration_obj,       -- KQDOBFED         -- Fedartion (application) object
   case when bitand(obj.flags, power(2, 32)) <> 0 then 'edl' end extended_data_link,   -- KQDOBF_ED_LINK
   case when status = 6 then 'invalid'                       end invalid               -- ? TODO is this so ?
from
   sys.obj$  obj                             join
   sys.user$ usr on obj.owner# = usr.user#
;

Primary tables

As per a comment in Oracle's documentation of dbms_metadata, there's is a «secondary object» bit which indicates if tables (and other objects?) are primary or secondary.

Sharing bits in FLAGS

SHARING bits in obj$.flags are:

See also

The view SYS."__CURRENT_EDITION_OBJ".
Event 10052
The creation of the obj$ table.

Index