select t.obj#,t.ts#, t.property
from tab$ t
where BITAND(t.property, 2151678048)=0
union all
/* IOT - returns IOT index object's ts# */
select t.obj#, i.ts#, t.property
from tab$ t, ind$ i
where BITAND(t.property, 72)=72 AND i.bo#=t.obj#
union all
/* partitioned table - returns partitioned objects default ts#.
Note that it is not necessary to check against all partitions and
subpartitions because (1) there is already a check for containment
among default tablespace and partition and subpartition tablespaces,
(2) containment property is transitive.
*/
select t.obj#, po.defts#, t.property
from tab$ t, partobj$ po
where BITAND(t.property, 40)=40 and po.obj#=t.obj#
SELECT T.OBJ#
, T.TS#
, T.PROPERTY
FROM TAB$ T
WHERE BITAND(T.PROPERTY
, 2151678048)=0
UNION ALL
/* IOT - RETURNS IOT INDEX OBJECT'S TS# */
SELECT T.OBJ#
, I.TS#
, T.PROPERTY
FROM TAB$ T
, IND$ I
WHERE BITAND(T.PROPERTY
, 72)=72
AND I.BO#=T.OBJ#
UNION ALL
/* PARTITIONED TABLE - RETURNS PARTITIONED OBJECTS DEFAULT TS#.
NOTE THAT IT IS NOT NECESSARY TO CHECK AGAINST ALL PARTITIONS AND
SUBPARTITIONS BECAUSE (1) THERE IS ALREADY A CHECK FOR CONTAINMENT
AMONG DEFAULT TABLESPACE
AND PARTITION
AND SUBPARTITION TABLESPACES
,
(2) CONTAINMENT PROPERTY IS TRANSITIVE.
*/
SELECT T.OBJ#
, PO.DEFTS#
, T.PROPERTY
FROM TAB$ T
, PARTOBJ$ PO
WHERE BITAND(T.PROPERTY
, 40)=40
AND PO.OBJ#=T.OBJ#
|
|
|