select t.obj#,
cast(multiset(select
nt.obj#, nt.intcol#, nt.ntab#,
(select value(o) from ku$_schemaobj_view o
where o.obj_num = nt.ntab#),
(select value(c) from ku$_simple_col_view c
where c.obj_num = nt.obj#
and c.intcol_num = nt.intcol#),
(select t.property from tab$ t where t.obj# = nt.ntab#),
(select ct.flags from coltype$ ct
where ct.obj# = nt.obj#
and ct.intcol# = nt.intcol#),
(select value(h) from ku$_hnt_view h
where h.obj_num = nt.ntab#),
(select value(i) from ku$_iont_view i
where i.obj_num = nt.ntab#),
(cast(multiset(select * from ku$_column_view c
where c.obj_num = nt.ntab#
order by c.col_num, c.intcol_num
) as ku$_column_list_t
))
from ntab$ nt start with nt.obj#=t.obj#
connect by prior nt.ntab#=nt.obj#
) as ku$_nt_list_t
)
from tab$ t where bitand(t.property,4) = 4 -- has nested table columns
SELECT T.OBJ#
,
CAST(MULTISET(SELECT
NT.OBJ#
, NT.INTCOL#
, NT.NTAB#
,
(SELECT VALUE(O)
FROM KU$_SCHEMAOBJ_VIEW O
WHERE O.OBJ_NUM = NT.NTAB#)
,
(SELECT VALUE(C)
FROM KU$_SIMPLE_COL_VIEW C
WHERE C.OBJ_NUM = NT.OBJ#
AND C.INTCOL_NUM = NT.INTCOL#)
,
(SELECT T.PROPERTY
FROM TAB$ T
WHERE T.OBJ# = NT.NTAB#)
,
(SELECT CT.FLAGS
FROM COLTYPE$ CT
WHERE CT.OBJ# = NT.OBJ#
AND CT.INTCOL# = NT.INTCOL#)
,
(SELECT VALUE(H)
FROM KU$_HNT_VIEW H
WHERE H.OBJ_NUM = NT.NTAB#)
,
(SELECT VALUE(I)
FROM KU$_IONT_VIEW I
WHERE I.OBJ_NUM = NT.NTAB#)
,
(CAST(MULTISET(SELECT *
FROM KU$_COLUMN_VIEW C
WHERE C.OBJ_NUM = NT.NTAB#
ORDER BY C.COL_NUM
, C.INTCOL_NUM
) AS KU$_COLUMN_LIST_T
))
FROM NTAB$ NT START WITH NT.OBJ#=T.OBJ#
CONNECT BY PRIOR NT.NTAB#=NT.OBJ#
) AS KU$_NT_LIST_T
)
FROM TAB$ T
WHERE BITAND(T.PROPERTY
, 4) = 4 -- HAS NESTED TABLE COLUMNS
|
|
|