select /*+ no_cartesian(m) ordered use_nl(o m) */ u.name, m.kln, m.fix, m.fnm,
decode(BITAND(m.fac, 7), 1, 'PUBLIC',
2, 'PRIVATE',
4, 'PROTECTED',
NULL),
decode(BITAND(m.fac, 8), 8, 'YES',
0, 'NO'),
decode(BITAND(m.fac, 16), 16, 'YES',
0, 'NO'),
decode(BITAND(m.fac, 64), 64, 'YES',
0, 'NO'),
decode(BITAND(m.fac, 128), 128, 'YES',
0, 'NO'),
decode(BITAND(m.fac, 4096), 4096, 'YES',
0, 'NO'),
decode(BITAND(m.fac, 16384), 16384, 'YES',
0, 'NO'),
m.fad,
decode(m.fbt, 10, 'int',
11, 'long',
6, 'float',
7, 'double',
4, 'boolean',
8, 'byte',
5, 'char',
9, 'short',
2, 'class',
NULL),
m.fln
from sys.x$joxmfd m, sys.user$ u
where m.own = u.user#
and m.fix != -1
and
(
m.own in (userenv('SCHEMAID'), 1 /* PUBLIC */)
or
(
(
(
m.obn in (select obj# from sys.objauth$
where grantee# in (select kzsrorol from x$kzsro)
and privilege# = 12 /* EXECUTE */)
)
or
exists
(
select null from sys.sysauth$
where grantee# in (select kzsrorol from x$kzsro)
and
(
(
/* procedure */
(
privilege# = -144 /* EXECUTE ANY PROCEDURE */
or
privilege# = -141 /* CREATE ANY PROCEDURE */
)
)
)
)
)
)
)
SELECT /*+ NO_CARTESIAN(M) ORDERED USE_NL(O M) */ U.NAME
, M.KLN
, M.FIX
, M.FNM
,
DECODE(BITAND(M.FAC
, 7)
, 1
, 'PUBLIC'
,
2
, 'PRIVATE'
,
4
, 'PROTECTED'
,
NULL)
,
DECODE(BITAND(M.FAC
, 8)
, 8
, 'YES'
,
0
, 'NO')
,
DECODE(BITAND(M.FAC
, 16)
, 16
, 'YES'
,
0
, 'NO')
,
DECODE(BITAND(M.FAC
, 64)
, 64
, 'YES'
,
0
, 'NO')
,
DECODE(BITAND(M.FAC
, 128)
, 128
, 'YES'
,
0
, 'NO')
,
DECODE(BITAND(M.FAC
, 4096)
, 4096
, 'YES'
,
0
, 'NO')
,
DECODE(BITAND(M.FAC
, 16384)
, 16384
, 'YES'
,
0
, 'NO')
,
M.FAD
,
DECODE(M.FBT
, 10
, 'INT'
,
11
, 'LONG'
,
6
, 'FLOAT'
,
7
, 'DOUBLE'
,
4
, 'BOOLEAN'
,
8
, 'BYTE'
,
5
, 'CHAR'
,
9
, 'SHORT'
,
2
, 'CLASS'
,
NULL)
,
M.FLN
FROM SYS.X$JOXMFD M
, SYS.USER$ U
WHERE M.OWN = U.USER#
AND M.FIX != -1
AND
(
M.OWN IN (USERENV('SCHEMAID')
, 1 /* PUBLIC */)
OR
(
(
(
M.OBN IN (SELECT OBJ#
FROM SYS.OBJAUTH$
WHERE GRANTEE# IN (SELECT KZSROROL
FROM X$KZSRO)
AND PRIVILEGE# = 12 /* EXECUTE */)
)
OR
EXISTS
(
SELECT NULL
FROM SYS.SYSAUTH$
WHERE GRANTEE# IN (SELECT KZSROROL
FROM X$KZSRO)
AND
(
(
/* PROCEDURE */
(
PRIVILEGE# = -144 /* EXECUTE ANY PROCEDURE */
OR
PRIVILEGE# = -141 /* CREATE ANY PROCEDURE */
)
)
)
)
)
)
)
|
|
|