select u.name, o.name,
decode(c.name, 'SYS_NC_ROWINFO$', 'OBJECT TABLE', c.name)
from sys.user$ u, sys."_CURRENT_EDITION_OBJ" o, sys.col$ c, sys.coltype$ t
where o.type# = 2 and /* show only tables */
o.owner# = userenv('SCHEMAID') and
o.owner# = u.user# and
o.obj# = c.obj# and
o.obj# = t.obj# and
c.intcol# = t.intcol# and
/* do not show attribute columns. If the attribute is in 8.0 image, that
means the whole column is in 8.0 image. Now, this will still show
top level ADT columns in an object table, which is redundant. */
bitand(c.property, 1) = 0 and
bitand(t.flags, 128) <> 0
SELECT U.NAME
, O.NAME
,
DECODE(C.NAME
, 'SYS_NC_ROWINFO$'
, 'OBJECT TABLE'
, C.NAME)
FROM SYS.USER$ U
, SYS."_CURRENT_EDITION_OBJ" O
, SYS.COL$ C
, SYS.COLTYPE$ T
WHERE O.TYPE# = 2
AND /* SHOW ONLY TABLES */
O.OWNER# = USERENV('SCHEMAID') AND
O.OWNER# = U.USER# AND
O.OBJ# = C.OBJ# AND
O.OBJ# = T.OBJ# AND
C.INTCOL# = T.INTCOL# AND
/* DO NOT SHOW ATTRIBUTE COLUMNS. IF THE ATTRIBUTE IS IN 8.0 IMAGE
, THAT
MEANS THE WHOLE COLUMN IS IN 8.0 IMAGE. NOW
, THIS WILL STILL SHOW
TOP LEVEL ADT COLUMNS IN AN OBJECT TABLE
, WHICH IS REDUNDANT. */
BITAND(C.PROPERTY
, 1) = 0 AND
BITAND(T.FLAGS
, 128) <> 0
|
|
|