select ct.obj#, ct.col#, ct.intcol#,
o.owner_name, o.name,
ct.flags,
(select opq.flags from sys.opqtype$ opq
where opq.obj#=ct.obj# and opq.intcol#=ct.intcol#),
ct.toid,
ct.version#,
sys.dbms_metadata.get_hashcode(o.owner_name,o.name),
ct.typidcol#,
/* look up stuff in subcoltype$ only if column is substitutable */
decode(bitand(ct.flags, 512), 512,
cast(multiset(select sct.* from ku$_strmsubcoltype_view sct
where ct.obj# = sct.obj_num
and ct.intcol# = sct.intcol_num
) as ku$_strmsubcoltype_list_t
),
null),
-- If column is opaque and has internal columns, check for unpacked
-- anydata type
case when ((bitand(ct.flags, 16384)=16384) and (ct.intcols>0)) then
(select dbms_metadata_util.get_anydata_colset(ct.obj#, ct.col#,
ct.intcols,ct.intcol#s) from dual)
else null end
from ku$_schemaobj_view o, obj$ oo, coltype$ ct
where ct.toid = oo.oid$
and o.obj_num = oo.obj#
SELECT CT.OBJ#
, CT.COL#
, CT.INTCOL#
,
O.OWNER_NAME
, O.NAME
,
CT.FLAGS
,
(SELECT OPQ.FLAGS
FROM SYS.OPQTYPE$ OPQ
WHERE OPQ.OBJ#=CT.OBJ#
AND OPQ.INTCOL#=CT.INTCOL#)
,
CT.TOID
,
CT.VERSION#
,
SYS.DBMS_METADATA.GET_HASHCODE(O.OWNER_NAME
, O.NAME)
,
CT.TYPIDCOL#
,
/* LOOK UP STUFF IN SUBCOLTYPE$ ONLY IF COLUMN IS SUBSTITUTABLE */
DECODE(BITAND(CT.FLAGS
, 512)
, 512
,
CAST(MULTISET(SELECT SCT.*
FROM KU$_STRMSUBCOLTYPE_VIEW SCT
WHERE CT.OBJ# = SCT.OBJ_NUM
AND CT.INTCOL# = SCT.INTCOL_NUM
) AS KU$_STRMSUBCOLTYPE_LIST_T
)
,
NULL)
,
-- IF COLUMN IS OPAQUE
AND HAS INTERNAL COLUMNS
, CHECK FOR UNPACKED
-- ANYDATA TYPE
CASE WHEN ((BITAND(CT.FLAGS
, 16384)=16384)
AND (CT.INTCOLS>0)) THEN
(SELECT DBMS_METADATA_UTIL.GET_ANYDATA_COLSET(CT.OBJ#
, CT.COL#
,
CT.INTCOLS
, CT.INTCOL#S)
FROM DUAL)
ELSE NULL END
FROM KU$_SCHEMAOBJ_VIEW O
, OBJ$ OO
, COLTYPE$ CT
WHERE CT.TOID = OO.OID$
AND O.OBJ_NUM = OO.OBJ#
|
|
|