select /*+ ORDERED */ t2.path path, t.res res,
xmltype.createxml(xdb.xdb_link_type(NULL, r2.xmldata.dispname, t.name,
h.name, h.flags, h.parent_oid, h.child_oid,
decode(bitand(sys_op_rawtonum(h.flags), 1024), 1024,
xdb.xdb$enum_t(hextoraw('01')),
decode(bitand(sys_op_rawtonum(h.flags), 512), 512,
xdb.xdb$enum_t(hextoraw('02')),
xdb.xdb$enum_t(hextoraw('00'))))),
'http://xmlns.oracle.com/xdb/XDBStandard.xsd', 'LINK') link,
t.resid
from ( select xdb.all_path(9999) paths, value(p) res, p.sys_nc_oid$ resid,
decode(bitand(sys_op_rawtonum(p.xmldata.flags), 8388608), 8388608,
utl_raw.cast_to_varchar2(dbms_lob.substr(p.xmldata.xmllob, 4000)),
p.xmldata.dispname) name
from xdb.xdb$resource p
where xdb.under_path(value(p), '/', 9999)=1 ) t,
TABLE( cast (t.paths as xdb.path_array) ) t2,
xdb.xdb$h_link h, xdb.xdb$resource r2
where t2.parent_oid = h.parent_oid and t2.childname = h.name and
t2.parent_oid = r2.sys_nc_oid$
SELECT /*+ ORDERED */ T2.PATH PATH
, T.RES RES
,
XMLTYPE.CREATEXML(XDB.XDB_LINK_TYPE(NULL
, R2.XMLDATA.DISPNAME
, T.NAME
,
H.NAME
, H.FLAGS
, H.PARENT_OID
, H.CHILD_OID
,
DECODE(BITAND(SYS_OP_RAWTONUM(H.FLAGS)
, 1024)
, 1024
,
XDB.XDB$ENUM_T(HEXTORAW('01'))
,
DECODE(BITAND(SYS_OP_RAWTONUM(H.FLAGS)
, 512)
, 512
,
XDB.XDB$ENUM_T(HEXTORAW('02'))
,
XDB.XDB$ENUM_T(HEXTORAW('00')))))
,
'HTTP://XMLNS.ORACLE.COM/XDB/XDBSTANDARD.XSD'
, 'LINK') LINK
,
T.RESID
FROM ( SELECT XDB.ALL_PATH(9999) PATHS
, VALUE(P) RES
, P.SYS_NC_OID$ RESID
,
DECODE(BITAND(SYS_OP_RAWTONUM(P.XMLDATA.FLAGS)
, 8388608)
, 8388608
,
UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(P.XMLDATA.XMLLOB
, 4000))
,
P.XMLDATA.DISPNAME) NAME
FROM XDB.XDB$RESOURCE P
WHERE XDB.UNDER_PATH(VALUE(P)
, '/'
, 9999)=1 ) T
,
TABLE( CAST (T.PATHS AS XDB.PATH_ARRAY) ) T2
,
XDB.XDB$H_LINK H
, XDB.XDB$RESOURCE R2
WHERE T2.PARENT_OID = H.PARENT_OID
AND T2.CHILDNAME = H.NAME AND
T2.PARENT_OID = R2.SYS_NC_OID$
|
|
|