[Home] [Help]
select io.name, idx.name, bo.name, base.name, c.default$, ic.pos#
from sys.col$ c, sys.obj$ idx, sys.obj$ base, sys.icol$ ic,
sys.user$ io, sys.user$ bo, sys.ind$ i
where bitand(ic.spare1,1) = 1 /* an expression */
and (bitand(i.property,1024) = 0) /* not bmji */
and ic.bo# = c.obj#
and ic.intcol# = c.intcol#
and ic.bo# = base.obj#
and io.user# = idx.owner#
and bo.user# = base.owner#
and ic.obj# = idx.obj#
and idx.obj# = i.obj#
and i.type# in (1, 2, 3, 4, 6, 7, 9)
and (idx.owner# = userenv('SCHEMAID') or
base.owner# = userenv('SCHEMAID')
or
base.obj# in ( select obj#
from sys.objauth$
where grantee# in ( select kzsrorol
from x$kzsro
)
)
or
exists (select null from v$enabledprivs
where priv_number in (-45 /* LOCK ANY TABLE */,
-47 /* SELECT ANY TABLE */,
-397/* READ ANY TABLE */,
-48 /* INSERT ANY TABLE */,
-49 /* UPDATE ANY TABLE */,
-50 /* DELETE ANY TABLE */)
)
)
SELECT IO.NAME
, IDX.NAME
, BO.NAME
, BASE.NAME
, C.DEFAULT$
, IC.POS#
FROM SYS.COL$ C
, SYS.OBJ$ IDX
, SYS.OBJ$ BASE
, SYS.ICOL$ IC
,
SYS.USER$ IO
, SYS.USER$ BO
, SYS.IND$ I
WHERE BITAND(IC.SPARE1
, 1) = 1 /* AN EXPRESSION */
AND (BITAND(I.PROPERTY
, 1024) = 0) /* NOT BMJI */
AND IC.BO# = C.OBJ#
AND IC.INTCOL# = C.INTCOL#
AND IC.BO# = BASE.OBJ#
AND IO.USER# = IDX.OWNER#
AND BO.USER# = BASE.OWNER#
AND IC.OBJ# = IDX.OBJ#
AND IDX.OBJ# = I.OBJ#
AND I.TYPE# IN (1
, 2
, 3
, 4
, 6
, 7
, 9)
AND (IDX.OWNER# = USERENV('SCHEMAID') OR
BASE.OWNER# = USERENV('SCHEMAID')
OR
BASE.OBJ# IN ( SELECT OBJ#
FROM SYS.OBJAUTH$
WHERE GRANTEE# IN ( SELECT KZSROROL
FROM X$KZSRO
)
)
OR
EXISTS (SELECT NULL
FROM V$ENABLEDPRIVS
WHERE PRIV_NUMBER IN (-45 /* LOCK ANY TABLE */
,
-47 /* SELECT ANY TABLE */
,
-397/* READ ANY TABLE */
,
-48 /* INSERT ANY TABLE */
,
-49 /* UPDATE ANY TABLE */
,
-50 /* DELETE ANY TABLE */)
)
)
|
|
|
|