select u.name owner, o.name name, o.type#, o.obj#,
decode(bitand(t.flags, 1073741824), 1073741824, 1, 0) current_sby,
(case
/* The following are tables that are system maintained */
when ( exists (select 1 from system.logstdby$skip_support s
where s.name = u.name and action = 0))
or bitand(o.flags,
2 /* temporary object */
+ 16 /* secondary object */
+ 32 /* in-memory temp table */
+ 128 /* dropped table (RecycleBin) */
) != 0
or bitand(t.flags,
262144 /* 0x00040000 Summary Container Table, MV */
+ 134217728 /* 0x08000000 in-memory temporary table */
+ 536870912 /* 0x20000000 Mapping Tab for Phys rowid of IOT */
) != 0
or bitand(t.property,
512 /* 0x00000200 iot OVeRflow segment */
+ 8192 /* 0x00002000 nested table */
+ 4194304 /* 0x00400000 global temporary table */
+ 8388608 /* 0x00800000 session-specific temporary table */
+ 33554432 /* 0x02000000 Read Only Materialized View */
+ 67108864 /* 0x04000000 Materialized View table */
+ 134217728 /* 0x08000000 Is a Sub object */
+ 2147483648 /* 0x80000000 eXternal TaBle */
) != 0
or bitand(t.trigflag,
536870912 /* 0x20000000 DDLs autofiltered */
) != 0
or exists (select 1 from sys.mlog$ ml /* MVLOG table */
where ml.mowner = u.name and ml.log = o.name)
or exists (select 1 from sys.secobj$ so /* ODCI storage table */
where o.obj# = so.secobj#)
then -1
/* The following tables are user visible tables that we choose to
* skip because of some unsupported attribute of the table or column */
when bitand(t.trigflag,
65536 /* 0X10000 Table has encrypted columns */
) != 0
or /* Compression */
(bitand(nvl(s.spare1,0), 2048) = 2048 and bitand(t.property, 32) != 32)
or o.oid$ is not null
or bitand(t.property,
/* The following column properties are not checked in the
* common section because they are reflected in the column
* definitions and we want to see just those columns */
1 /* 0x00000001 typed table */
+ 2 /* 0x00000002 has ADT columns */
+ 4 /* 0x00000004 has nested-TABLE columns */
+ 8 /* 0x00000008 has REF columns */
+ 16 /* 0x00000010 has array columns */
+ 32768 /* 0x00008000 has FILE columns */
+ 131072 /* 0x00020000 table is used as an AQ queue table */
) != 0
or (bitand(t.property, 32) = 32) /* Partitioned */
and exists (select 1 from partobj$ po
where po.obj#=o.obj#
and (po.parttype in (3, /* System partitioned */
5))) /* Reference partitioned */
or exists (select 1 from sys.col$ c
where t.obj# = c.obj#
and bitand(c.property, 32) != 32 /* Not hidden */
and ((c.type# not in (
1, /* VARCHAR2 */
2, /* NUMBER */
8, /* LONG */
12, /* DATE */
24, /* LONG RAW */
96, /* CHAR */
100, /* BINARY FLOAT */
101, /* BINARY DOUBLE */
112, /* CLOB and NCLOB */
113, /* BLOB */
180, /* TIMESTAMP (..) */
181, /* TIMESTAMP(..) WITH TIME ZONE */
182, /* INTERVAL YEAR(..) TO MONTH */
183, /* INTERVAL DAY(..) TO SECOND(..) */
231) /* TIMESTAMP(..) WITH LOCAL TIME ZONE */
and (c.type# != 23 /* RAW not RAW OID */
or (c.type# = 23 and bitand(c.property, 2) = 2)))
-----------------------------------------
or (c.type# in (8,24,112,113)
and 0 = (select count(*) from sys.col$ c2
where t.obj# = c2.obj#
and bitand(c2.property, 32) != 32 /* Not hidden */
and (c2.type# in ( 1, /* VARCHAR2 */
2, /* NUMBER */
12, /* DATE */
23, /* RAW */
96, /* CHAR */
100, /* BINARY FLOAT */
101, /* BINARY DOUBLE */
180, /* TIMESTAMP (..) */
181, /* TIMESTAMP(..) WITH TIME ZONE */
182, /* INTERVAL YEAR(..) TO MONTH */
183, /* INTERVAL DAY(..) TO SECOND(..) */
231) /* TIMESTAMP(..) WITH LOCAL TIME ZONE */
)))))
-----------------------------------------
then 0 else 1 end) gensby
from sys.obj$ o, sys.user$ u, sys.tab$ t, sys.seg$ s
where o.owner# = u.user#
and o.obj# = t.obj#
and t.file# = s.file# (+)
and t.block# = s.block# (+)
and t.ts# = s.ts# (+)
and t.obj# = o.obj#
SELECT U.NAME OWNER
, O.NAME NAME
, O.TYPE#
, O.OBJ#
,
DECODE(BITAND(T.FLAGS
, 1073741824)
, 1073741824
, 1
, 0) CURRENT_SBY
,
(CASE
/* THE FOLLOWING ARE TABLES THAT ARE SYSTEM MAINTAINED */
WHEN ( EXISTS (SELECT 1
FROM SYSTEM.LOGSTDBY$SKIP_SUPPORT S
WHERE S.NAME = U.NAME
AND ACTION = 0))
OR BITAND(O.FLAGS
,
2 /* TEMPORARY OBJECT */
+ 16 /* SECONDARY OBJECT */
+ 32 /* IN-MEMORY TEMP TABLE */
+ 128 /* DROPPED TABLE (RECYCLEBIN) */
) != 0
OR BITAND(T.FLAGS
,
262144 /* 0X00040000 SUMMARY CONTAINER TABLE
, MV */
+ 134217728 /* 0X08000000 IN-MEMORY TEMPORARY TABLE */
+ 536870912 /* 0X20000000 MAPPING TAB FOR PHYS ROWID OF IOT */
) != 0
OR BITAND(T.PROPERTY
,
512 /* 0X00000200 IOT OVERFLOW SEGMENT */
+ 8192 /* 0X00002000 NESTED TABLE */
+ 4194304 /* 0X00400000 GLOBAL TEMPORARY TABLE */
+ 8388608 /* 0X00800000 SESSION-SPECIFIC TEMPORARY TABLE */
+ 33554432 /* 0X02000000 READ ONLY MATERIALIZED VIEW */
+ 67108864 /* 0X04000000 MATERIALIZED VIEW TABLE */
+ 134217728 /* 0X08000000 IS A SUB OBJECT */
+ 2147483648 /* 0X80000000 EXTERNAL TABLE */
) != 0
OR BITAND(T.TRIGFLAG
,
536870912 /* 0X20000000 DDLS AUTOFILTERED */
) != 0
OR EXISTS (SELECT 1
FROM SYS.MLOG$ ML /* MVLOG TABLE */
WHERE ML.MOWNER = U.NAME
AND ML.LOG = O.NAME)
OR EXISTS (SELECT 1
FROM SYS.SECOBJ$ SO /* ODCI STORAGE TABLE */
WHERE O.OBJ# = SO.SECOBJ#)
THEN -1
/* THE FOLLOWING TABLES ARE USER VISIBLE TABLES THAT WE CHOOSE TO
* SKIP BECAUSE OF SOME UNSUPPORTED ATTRIBUTE OF THE TABLE OR COLUMN */
WHEN BITAND(T.TRIGFLAG
,
65536 /* 0X10000 TABLE HAS ENCRYPTED COLUMNS */
) != 0
OR /* COMPRESSION */
(BITAND(NVL(S.SPARE1
, 0)
, 2048) = 2048
AND BITAND(T.PROPERTY
, 32) != 32)
OR O.OID$ IS NOT NULL
OR BITAND(T.PROPERTY
,
/* THE FOLLOWING COLUMN PROPERTIES ARE NOT CHECKED IN THE
* COMMON SECTION BECAUSE THEY ARE REFLECTED IN THE COLUMN
* DEFINITIONS
AND WE WANT TO SEE JUST THOSE COLUMNS */
1 /* 0X00000001 TYPED TABLE */
+ 2 /* 0X00000002 HAS ADT COLUMNS */
+ 4 /* 0X00000004 HAS NESTED-TABLE COLUMNS */
+ 8 /* 0X00000008 HAS REF COLUMNS */
+ 16 /* 0X00000010 HAS ARRAY COLUMNS */
+ 32768 /* 0X00008000 HAS FILE COLUMNS */
+ 131072 /* 0X00020000 TABLE IS USED AS AN AQ QUEUE TABLE */
) != 0
OR (BITAND(T.PROPERTY
, 32) = 32) /* PARTITIONED */
AND EXISTS (SELECT 1
FROM PARTOBJ$ PO
WHERE PO.OBJ#=O.OBJ#
AND (PO.PARTTYPE IN (3
, /* SYSTEM PARTITIONED */
5))) /* REFERENCE PARTITIONED */
OR EXISTS (SELECT 1
FROM SYS.COL$ C
WHERE T.OBJ# = C.OBJ#
AND BITAND(C.PROPERTY
, 32) != 32 /* NOT HIDDEN */
AND ((C.TYPE# NOT IN (
1
, /* VARCHAR2 */
2
, /* NUMBER */
8
, /* LONG */
12
, /* DATE */
24
, /* LONG RAW */
96
, /* CHAR */
100
, /* BINARY FLOAT */
101
, /* BINARY DOUBLE */
112
, /* CLOB
AND NCLOB */
113
, /* BLOB */
180
, /* TIMESTAMP (..) */
181
, /* TIMESTAMP(..) WITH TIME ZONE */
182
, /* INTERVAL YEAR(..) TO MONTH */
183
, /* INTERVAL DAY(..) TO SECOND(..) */
231) /* TIMESTAMP(..) WITH LOCAL TIME ZONE */
AND (C.TYPE# != 23 /* RAW NOT RAW OID */
OR (C.TYPE# = 23
AND BITAND(C.PROPERTY
, 2) = 2)))
-----------------------------------------
OR (C.TYPE# IN (8
, 24
, 112
, 113)
AND 0 = (SELECT COUNT(*)
FROM SYS.COL$ C2
WHERE T.OBJ# = C2.OBJ#
AND BITAND(C2.PROPERTY
, 32) != 32 /* NOT HIDDEN */
AND (C2.TYPE# IN ( 1
, /* VARCHAR2 */
2
, /* NUMBER */
12
, /* DATE */
23
, /* RAW */
96
, /* CHAR */
100
, /* BINARY FLOAT */
101
, /* BINARY DOUBLE */
180
, /* TIMESTAMP (..) */
181
, /* TIMESTAMP(..) WITH TIME ZONE */
182
, /* INTERVAL YEAR(..) TO MONTH */
183
, /* INTERVAL DAY(..) TO SECOND(..) */
231) /* TIMESTAMP(..) WITH LOCAL TIME ZONE */
)))))
-----------------------------------------
THEN 0 ELSE 1 END) GENSBY
FROM SYS.OBJ$ O
, SYS.USER$ U
, SYS.TAB$ T
, SYS.SEG$ S
WHERE O.OWNER# = U.USER#
AND O.OBJ# = T.OBJ#
AND T.FILE# = S.FILE# (+)
AND T.BLOCK# = S.BLOCK# (+)
AND T.TS# = S.TS# (+)
AND T.OBJ# = O.OBJ#
|
|
|