SELECT o.owner#, u.name, cc.con#,
DECODE(BITAND(c.property, 1), 1, at.name, c.name),
cc.pos#, c.intcol#, c.property,
DECODE(BITAND(cc.spare1, 1), 1, 1, 0)
FROM sys.obj$ o, sys.col$ c, sys.ccol$ cc, sys.attrcol$ at,
sys.user$ u
WHERE o.obj# = cc.obj# AND
o.owner# = u.user# AND
c.obj# = cc.obj# AND
c.intcol# = cc.intcol# AND
BITAND(c.property, 2097152) = 0 AND /* Not REA */
BITAND(c.property, 1024) = 0 AND /* Not SETID */
c.obj# = at.obj# (+) AND
c.intcol# = at.intcol# (+) AND
NOT EXISTS (
SELECT owner, name
FROM sys.noexp$ ne
WHERE ne.owner = u.name AND
ne.name = o.name AND
ne.obj_type = 2)
UNION /* Nested Tables - SETID column */
SELECT o.owner#, u.name, cc.con#,
DECODE(BITAND(c.property, 1), 1, at.name, c.name),
cc.pos#, c.intcol#, c.property,
DECODE(BITAND(cc.spare1, 1), 1, 1, 0)
FROM sys.obj$ o, sys.col$ c, sys.ccol$ cc, sys.attrcol$ at,
sys.user$ u, sys.col$ cn
WHERE o.obj# = cc.obj# AND
o.owner# = u.user# AND
cn.obj# = cc.obj# AND
cn.intcol# = cc.intcol# AND
BITAND(cn.property, 1024) = 1024 AND /* SETID */
c.obj# = cc.obj# AND
c.col# = cn.col# AND
c.intcol# = (cn.intcol# - 1) AND
c.segcol# = 0 AND
c.obj# = at.obj# (+) AND
c.intcol# = at.intcol# (+) AND
NOT EXISTS (
SELECT owner, name
FROM sys.noexp$ ne
WHERE ne.owner = u.name AND
ne.name = o.name AND
ne.obj_type = 2)
UNION /* REFs - REF attribute columns */
SELECT o.owner#, u.name, cc.con#,
DECODE(BITAND(rc.property, 1), 1, at.name, rc.name),
cc.pos#, rc.intcol#, rc.property,
DECODE(BITAND(cc.spare1, 1), 1, 1, 0)
FROM sys.obj$ o, sys.col$ c, sys.ccol$ cc, sys.attrcol$ at,
sys.user$ u, sys.coltype$ ct, sys.col$ rc
WHERE o.obj# = cc.obj# AND
o.owner# = u.user# AND
c.obj# = cc.obj# AND
c.intcol# = cc.intcol# AND
BITAND(c.property, 2097152) = 2097152 AND /* REA */
ct.obj# = cc.obj# AND
ct.col# = cc.col# AND
UTL_RAW.CAST_TO_BINARY_INTEGER(SUBSTRB(ct.intcol#s, 1,2), 3) =
cc.intcol# AND /* first list col# = constr col# */
rc.obj# = cc.obj# AND
rc.intcol# = ct.intcol# AND
rc.obj# = at.obj# (+) AND
rc.intcol# = at.intcol# (+) AND
NOT EXISTS (
SELECT owner, name
FROM sys.noexp$ ne
WHERE ne.owner = u.name AND
ne.name = o.name AND
ne.obj_type = 2)
SELECT O.OWNER#
, U.NAME
, CC.CON#
,
DECODE(BITAND(C.PROPERTY
, 1)
, 1
, AT.NAME
, C.NAME)
,
CC.POS#
, C.INTCOL#
, C.PROPERTY
,
DECODE(BITAND(CC.SPARE1
, 1)
, 1
, 1
, 0)
FROM SYS.OBJ$ O
, SYS.COL$ C
, SYS.CCOL$ CC
, SYS.ATTRCOL$ AT
,
SYS.USER$ U
WHERE O.OBJ# = CC.OBJ# AND
O.OWNER# = U.USER# AND
C.OBJ# = CC.OBJ# AND
C.INTCOL# = CC.INTCOL# AND
BITAND(C.PROPERTY
, 2097152) = 0
AND /* NOT REA */
BITAND(C.PROPERTY
, 1024) = 0
AND /* NOT SETID */
C.OBJ# = AT.OBJ# (+) AND
C.INTCOL# = AT.INTCOL# (+) AND
NOT EXISTS (
SELECT OWNER
, NAME
FROM SYS.NOEXP$ NE
WHERE NE.OWNER = U.NAME AND
NE.NAME = O.NAME AND
NE.OBJ_TYPE = 2)
UNION /* NESTED TABLES - SETID COLUMN */
SELECT O.OWNER#
, U.NAME
, CC.CON#
,
DECODE(BITAND(C.PROPERTY
, 1)
, 1
, AT.NAME
, C.NAME)
,
CC.POS#
, C.INTCOL#
, C.PROPERTY
,
DECODE(BITAND(CC.SPARE1
, 1)
, 1
, 1
, 0)
FROM SYS.OBJ$ O
, SYS.COL$ C
, SYS.CCOL$ CC
, SYS.ATTRCOL$ AT
,
SYS.USER$ U
, SYS.COL$ CN
WHERE O.OBJ# = CC.OBJ# AND
O.OWNER# = U.USER# AND
CN.OBJ# = CC.OBJ# AND
CN.INTCOL# = CC.INTCOL# AND
BITAND(CN.PROPERTY
, 1024) = 1024
AND /* SETID */
C.OBJ# = CC.OBJ# AND
C.COL# = CN.COL# AND
C.INTCOL# = (CN.INTCOL# - 1) AND
C.SEGCOL# = 0 AND
C.OBJ# = AT.OBJ# (+) AND
C.INTCOL# = AT.INTCOL# (+) AND
NOT EXISTS (
SELECT OWNER
, NAME
FROM SYS.NOEXP$ NE
WHERE NE.OWNER = U.NAME AND
NE.NAME = O.NAME AND
NE.OBJ_TYPE = 2)
UNION /* REFS - REF ATTRIBUTE COLUMNS */
SELECT O.OWNER#
, U.NAME
, CC.CON#
,
DECODE(BITAND(RC.PROPERTY
, 1)
, 1
, AT.NAME
, RC.NAME)
,
CC.POS#
, RC.INTCOL#
, RC.PROPERTY
,
DECODE(BITAND(CC.SPARE1
, 1)
, 1
, 1
, 0)
FROM SYS.OBJ$ O
, SYS.COL$ C
, SYS.CCOL$ CC
, SYS.ATTRCOL$ AT
,
SYS.USER$ U
, SYS.COLTYPE$ CT
, SYS.COL$ RC
WHERE O.OBJ# = CC.OBJ# AND
O.OWNER# = U.USER# AND
C.OBJ# = CC.OBJ# AND
C.INTCOL# = CC.INTCOL# AND
BITAND(C.PROPERTY
, 2097152) = 2097152
AND /* REA */
CT.OBJ# = CC.OBJ# AND
CT.COL# = CC.COL# AND
UTL_RAW.CAST_TO_BINARY_INTEGER(SUBSTRB(CT.INTCOL#S
, 1
, 2)
, 3) =
CC.INTCOL#
AND /* FIRST LIST COL# = CONSTR COL# */
RC.OBJ# = CC.OBJ# AND
RC.INTCOL# = CT.INTCOL# AND
RC.OBJ# = AT.OBJ# (+) AND
RC.INTCOL# = AT.INTCOL# (+) AND
NOT EXISTS (
SELECT OWNER
, NAME
FROM SYS.NOEXP$ NE
WHERE NE.OWNER = U.NAME AND
NE.NAME = O.NAME AND
NE.OBJ_TYPE = 2)
|
|
|