select '3', '0', o.obj#,
-- if this is a nested table, get parent table, otherwise get table.
decode(bitand(t.property , 8192+512), 8192,
(select value(oo) from ku$_schemaobj_view oo
where oo.obj_num = dbms_metadata_util.get_anc(o.obj#)),
512, (select value(oo) from ku$_schemaobj_view oo
where oo.obj_num = t.bobj#),
(select value(sov) from ku$_schemaobj_view sov
where sov.obj_num = o.obj#)),
decode(bitand(t.property , 8192+512), 8192, o.name, 512, o.name, null)
from sys.obj$ o, sys.tab$ t
where o.obj# = t.obj# and
o.type# = 2 and
(SYS_CONTEXT('USERENV','CURRENT_USERID') IN (o.owner#, 0) OR
EXISTS ( SELECT * FROM sys.session_roles
WHERE role='SELECT_CATALOG_ROLE' ))
SELECT '3'
, '0'
, O.OBJ#
,
-- IF THIS IS A NESTED TABLE
, GET PARENT TABLE
, OTHERWISE GET TABLE.
DECODE(BITAND(T.PROPERTY
, 8192+512)
, 8192
,
(SELECT VALUE(OO)
FROM KU$_SCHEMAOBJ_VIEW OO
WHERE OO.OBJ_NUM = DBMS_METADATA_UTIL.GET_ANC(O.OBJ#))
,
512
, (SELECT VALUE(OO)
FROM KU$_SCHEMAOBJ_VIEW OO
WHERE OO.OBJ_NUM = T.BOBJ#)
,
(SELECT VALUE(SOV)
FROM KU$_SCHEMAOBJ_VIEW SOV
WHERE SOV.OBJ_NUM = O.OBJ#))
,
DECODE(BITAND(T.PROPERTY
, 8192+512)
, 8192
, O.NAME
, 512
, O.NAME
, NULL)
FROM SYS.OBJ$ O
, SYS.TAB$ T
WHERE O.OBJ# = T.OBJ# AND
O.TYPE# = 2 AND
(SYS_CONTEXT('USERENV'
, 'CURRENT_USERID') IN (O.OWNER#
, 0) OR
EXISTS ( SELECT *
FROM SYS.SESSION_ROLES
WHERE ROLE='SELECT_CATALOG_ROLE' ))
|
|
|