[Home] [Help]
SELECT pi_obj.obj#, c_obj.name, c_obj.owner#,
/* decode below needed for ConText IOTs - copied from */
/* USER_TABLES in catalog.sql */
decode(bitand(tab.property, 2151678048), 0, ts.name, null)
FROM sys.obj$ pi_obj, sys.obj$ c_obj, sys.user$ us2,
sys.secobj$ secobj, sys.tab$ tab, sys.ts$ ts
WHERE pi_obj.obj# = secobj.obj# AND /* has secondary objects */
c_obj.obj# = secobj.secobj# AND /*object is secondary object */
c_obj.owner# = us2.user# AND /* secondary obj is same owner */
c_obj.type# = 2 AND /* Secondary Object is TABLE */
BITAND(c_obj.flags, 128) != 128 AND
secobj.secobj# = tab.obj# AND
tab.ts# = ts.ts# AND
(userenv('SCHEMAID') = 0 OR
(userenv('SCHEMAID') = pi_obj.owner# AND
userenv('SCHEMAID') = us2.user#) OR
EXISTS (
SELECT role
FROM sys.session_roles
WHERE role = 'SELECT_CATALOG_ROLE'))
SELECT PI_OBJ.OBJ#
, C_OBJ.NAME
, C_OBJ.OWNER#
,
/* DECODE BELOW NEEDED FOR CONTEXT IOTS - COPIED
FROM */
/* USER_TABLES IN CATALOG.SQL */
DECODE(BITAND(TAB.PROPERTY
, 2151678048)
, 0
, TS.NAME
, NULL)
FROM SYS.OBJ$ PI_OBJ
, SYS.OBJ$ C_OBJ
, SYS.USER$ US2
,
SYS.SECOBJ$ SECOBJ
, SYS.TAB$ TAB
, SYS.TS$ TS
WHERE PI_OBJ.OBJ# = SECOBJ.OBJ#
AND /* HAS SECONDARY OBJECTS */
C_OBJ.OBJ# = SECOBJ.SECOBJ#
AND /*OBJECT IS SECONDARY OBJECT */
C_OBJ.OWNER# = US2.USER#
AND /* SECONDARY OBJ IS SAME OWNER */
C_OBJ.TYPE# = 2
AND /* SECONDARY OBJECT IS TABLE */
BITAND(C_OBJ.FLAGS
, 128) != 128 AND
SECOBJ.SECOBJ# = TAB.OBJ# AND
TAB.TS# = TS.TS# AND
(USERENV('SCHEMAID') = 0 OR
(USERENV('SCHEMAID') = PI_OBJ.OWNER# AND
USERENV('SCHEMAID') = US2.USER#) OR
EXISTS (
SELECT ROLE
FROM SYS.SESSION_ROLES
WHERE ROLE = 'SELECT_CATALOG_ROLE'))
|
|
|
|