select c.obj#, c.col#, c.intcol#, c.segcol#,
-- col_sortkey, base_intcol_num not present on 10g
-- base_col_type, base_col_name added for bug fix on 10g
case c.col# when c.intcol# then 0
when 0 then 0
else
sys.dbms_metadata_util.get_base_col_type(c.obj#,c.col#,
c.intcol#,c.type#)
end,
case c.col# when c.intcol# then NULL
when 0 then NULL
else
sys.dbms_metadata_util.get_base_col_name(c.obj#,c.col#,
c.intcol#,c.type#)
end,
-- get column properties
sys.dbms_metadata_util.get_col_property(c.obj#,c.intcol#),
c.name,
decode(bitand(c.property,1024),0,
(select a.name from attrcol$ a where
a.obj#=c.obj# and a.intcol#=c.intcol#),
(select a.name from attrcol$ a where c.intcol#>1 and
a.obj#=c.obj# and a.intcol#=c.intcol#-1)),
c.type#, c.length,
c.precision#, c.scale, c.null$,
c.charsetid, c.charsetform, c.spare3,
-- get lob property if type# = 112 (DTYCLOB)
decode(c.type#,112,
sys.dbms_metadata_util.get_lob_property(c.obj#,c.intcol#),
null),
-- get type metadata if type# = 121 (DTYADT)
-- 123 (DTYNAR)
-- 58 (DTYOPQ)
( select value(ctv) from ku$_10_2_strmcoltype_view ctv
where c.obj# = ctv.obj_num
and c.intcol# = ctv.intcol_num
and c.type# in (121,123,58) )
from col$ c where dbms_metadata.is_attr_valid_on_10(c.obj#,c.intcol#)=1
SELECT C.OBJ#
, C.COL#
, C.INTCOL#
, C.SEGCOL#
,
-- COL_SORTKEY
, BASE_INTCOL_NUM NOT PRESENT ON 10G
-- BASE_COL_TYPE
, BASE_COL_NAME ADDED FOR BUG FIX ON 10G
CASE C.COL# WHEN C.INTCOL# THEN 0
WHEN 0 THEN 0
ELSE
SYS.DBMS_METADATA_UTIL.GET_BASE_COL_TYPE(C.OBJ#
, C.COL#
,
C.INTCOL#
, C.TYPE#)
END
,
CASE C.COL# WHEN C.INTCOL# THEN NULL
WHEN 0 THEN NULL
ELSE
SYS.DBMS_METADATA_UTIL.GET_BASE_COL_NAME(C.OBJ#
, C.COL#
,
C.INTCOL#
, C.TYPE#)
END
,
-- GET COLUMN PROPERTIES
SYS.DBMS_METADATA_UTIL.GET_COL_PROPERTY(C.OBJ#
, C.INTCOL#)
,
C.NAME
,
DECODE(BITAND(C.PROPERTY
, 1024)
, 0
,
(SELECT A.NAME
FROM ATTRCOL$ A WHERE
A.OBJ#=C.OBJ#
AND A.INTCOL#=C.INTCOL#)
,
(SELECT A.NAME
FROM ATTRCOL$ A
WHERE C.INTCOL#>1 AND
A.OBJ#=C.OBJ#
AND A.INTCOL#=C.INTCOL#-1))
,
C.TYPE#
, C.LENGTH
,
C.PRECISION#
, C.SCALE
, C.NULL$
,
C.CHARSETID
, C.CHARSETFORM
, C.SPARE3
,
-- GET LOB PROPERTY IF TYPE# = 112 (DTYCLOB)
DECODE(C.TYPE#
, 112
,
SYS.DBMS_METADATA_UTIL.GET_LOB_PROPERTY(C.OBJ#
, C.INTCOL#)
,
NULL)
,
-- GET TYPE METADATA IF TYPE# = 121 (DTYADT)
-- 123 (DTYNAR)
-- 58 (DTYOPQ)
( SELECT VALUE(CTV)
FROM KU$_10_2_STRMCOLTYPE_VIEW CTV
WHERE C.OBJ# = CTV.OBJ_NUM
AND C.INTCOL# = CTV.INTCOL_NUM
AND C.TYPE# IN (121
, 123
, 58) )
FROM COL$ C
WHERE DBMS_METADATA.IS_ATTR_VALID_ON_10(C.OBJ#
, C.INTCOL#)=1
|
|
|