select triguser.name, trigobj.name,
decode(t.type#, 0, 'BEFORE STATEMENT',
1, 'BEFORE EACH ROW',
2, 'AFTER STATEMENT',
3, 'AFTER EACH ROW',
4, 'INSTEAD OF',
5, 'COMPOUND',
'UNDEFINED'),
decode(decode(bitand(t.property, 524288), 524288, 1000, 0) + t.insert$*100 + t.update$*10 + t.delete$,
0100, 'INSERT',
0010, 'UPDATE',
0001, 'DELETE',
0110, 'INSERT OR UPDATE',
0101, 'INSERT OR DELETE',
0011, 'UPDATE OR DELETE',
0111, 'INSERT OR UPDATE OR DELETE',
1000, 'LOGICAL LOB UPDATE',
'ERROR'),
tabuser.name,
decode(bitand(t.property, 1), 1, 'VIEW',
0, 'TABLE',
'UNDEFINED'),
tabobj.name, NULL,
'REFERENCING NEW AS '||t.refnewname||' OLD AS '||t.refoldname,
t.whenclause,decode(t.enabled, 0, 'DISABLED', 1, 'ENABLED', 'ERROR'),
t.definition,
decode(bitand(t.property, 2), 2, 'CALL',
'PL/SQL '),
t.action#,
decode(bitand(t.property, 8192),
8192, decode(bitand(t.property, 131072),
131072, 'REVERSE', 'FORWARD'), 'NO'),
decode(bitand(t.property, 256),
256, 'YES', 'NO'),
decode(bitand(t.property, 512),
512, 'YES', 'NO'),
decode(bitand(t.property, 1024),
1024, 'YES', 'NO'),
decode(bitand(t.property, 2048),
2048, 'YES', 'NO'),
decode(bitand(t.property, 4096 ),
4096, 'YES', 'NO'),
decode(bitand(t.property, 128), /* FOO */
128, 'YES', 'NO'),
decode(bitand(t.property, 262144), /* ASO */
262144, 'YES', 'NO')
from sys."_CURRENT_EDITION_OBJ" trigobj,
sys."_CURRENT_EDITION_OBJ" tabobj,
sys.trigger$ t,
sys.user$ tabuser,
sys.user$ triguser
where (trigobj.obj# = t.obj# and
tabobj.obj# = t.baseobject and
trigobj.owner# = triguser.user# and
tabobj.owner# = tabuser.user# and
bitand(trigobj.flags, 128) = 0 and
bitand(t.property, 63) < 8 and
(
trigobj.owner# = userenv('SCHEMAID') or
tabobj.owner# = userenv('SCHEMAID') or
tabobj.obj# in
(select oa1.obj# from sys.objauth$ oa1 where grantee# in
(select kzsrorol from x$kzsro)) or
exists (select null from v$enabledprivs
where priv_number = -152 /* CREATE ANY TRIGGER */)))
union all
select triguser.name, trigobj.name,
decode(t.type#, 0, 'BEFORE EVENT',
2, 'AFTER EVENT',
'UNDEFINED'),
decode(bitand(t.sys_evts, 1), 1, 'STARTUP ') ||
decode(bitand(t.sys_evts, 2), 2,
decode(sign(bitand(t.sys_evts, 1)), 1, 'OR SHUTDOWN ',
'SHUTDOWN ')) ||
decode(bitand(t.sys_evts, 4), 4,
decode(sign(bitand(t.sys_evts, 3)), 1, 'OR ERROR ',
'ERROR ')) ||
decode(bitand(t.sys_evts, 8), 8,
decode(sign(bitand(t.sys_evts, 7)), 1, 'OR LOGON ',
'LOGON ')) ||
decode(bitand(t.sys_evts, 16), 16,
decode(sign(bitand(t.sys_evts, 15)), 1, 'OR LOGOFF ',
'LOGOFF ')) ||
decode(bitand(t.sys_evts, 262176), 32,
decode(sign(bitand(t.sys_evts, 31)), 1, 'OR CREATE ',
'CREATE ')) ||
decode(bitand(t.sys_evts, 262208), 64,
decode(sign(bitand(t.sys_evts, 63)), 1, 'OR ALTER ',
'ALTER ')) ||
decode(bitand(t.sys_evts, 262272), 128,
decode(sign(bitand(t.sys_evts, 127)), 1, 'OR DROP ',
'DROP ')) ||
decode (bitand(t.sys_evts, 262400), 256,
decode(sign(bitand(t.sys_evts, 255)), 1, 'OR ANALYZE ',
'ANALYZE ')) ||
decode (bitand(t.sys_evts, 262656), 512,
decode(sign(bitand(t.sys_evts, 511)), 1, 'OR COMMENT ',
'COMMENT ')) ||
decode (bitand(t.sys_evts, 263168), 1024,
decode(sign(bitand(t.sys_evts, 1023)), 1, 'OR GRANT ',
'GRANT ')) ||
decode (bitand(t.sys_evts, 264192), 2048,
decode(sign(bitand(t.sys_evts, 2047)), 1, 'OR REVOKE ',
'REVOKE ')) ||
decode (bitand(t.sys_evts, 266240), 4096,
decode(sign(bitand(t.sys_evts, 4095)), 1, 'OR TRUNCATE ',
'TRUNCATE ')) ||
decode (bitand(t.sys_evts, 270336), 8192,
decode(sign(bitand(t.sys_evts, 8191)), 1, 'OR RENAME ',
'RENAME ')) ||
decode (bitand(t.sys_evts, 278528), 16384,
decode(sign(bitand(t.sys_evts, 16383)), 1, 'OR ASSOCIATE STATISTICS ',
'ASSOCIATE STATISTICS ')) ||
decode (bitand(t.sys_evts, 294912), 32768,
decode(sign(bitand(t.sys_evts, 32767)), 1, 'OR AUDIT ',
'AUDIT ')) ||
decode (bitand(t.sys_evts, 327680), 65536,
decode(sign(bitand(t.sys_evts, 65535)), 1,
'OR DISASSOCIATE STATISTICS ', 'DISASSOCIATE STATISTICS ')) ||
decode (bitand(t.sys_evts, 393216), 131072,
decode(sign(bitand(t.sys_evts, 131071)), 1, 'OR NOAUDIT ',
'NOAUDIT ')) ||
decode (bitand(t.sys_evts, 262144), 262144,
decode(sign(bitand(t.sys_evts, 31)), 1, 'OR DDL ',
'DDL ')) ||
decode (bitand(t.sys_evts, 8388608), 8388608,
decode(sign(bitand(t.sys_evts, 8388607)), 1, 'OR SUSPEND ',
'SUSPEND ')) ||
decode (bitand(t.sys_evts, 33554432), 33554432,
decode(sign(bitand(t.sys_evts, 33554431)), 1, 'OR CLONE ',
'CLONE ')) ||
decode (bitand(t.sys_evts, 67108864), 67108864,
decode(sign(bitand(t.sys_evts, 67108863)), 1, 'OR UNPLUG ',
'UNPLUG ')),
'SYS',
decode(bitand(t.property, 8), 8, 'DATABASE ', 'PLUGGABLE DATABASE'),
NULL,
NULL,
'REFERENCING NEW AS '||t.refnewname||' OLD AS '||t.refoldname,
t.whenclause,decode(t.enabled, 0, 'DISABLED', 1, 'ENABLED', 'ERROR'),
t.definition,
decode(bitand(t.property, 2), 2, 'CALL',
'PL/SQL '),
t.action#,
'NO',
'NO',
'NO',
'NO',
'NO',
'NO',
'NO',
'NO'
from sys."_CURRENT_EDITION_OBJ" trigobj,
sys.trigger$ t,
sys.user$ triguser
where (trigobj.obj# = t.obj# and
trigobj.owner# = triguser.user# and
bitand(t.property, 48) = 0 and bitand(t.property, 1048584) != 0 and
bitand(trigobj.flags, 128) = 0 and
(
trigobj.owner# = userenv('SCHEMAID') or
exists (select null from v$enabledprivs
where priv_number = -152 /* CREATE ANY TRIGGER */)))
union all
select triguser.name, trigobj.name,
decode(t.type#, 0, 'BEFORE EVENT',
2, 'AFTER EVENT',
'UNDEFINED'),
decode(bitand(t.sys_evts, 1), 1, 'STARTUP ') ||
decode(bitand(t.sys_evts, 2), 2,
decode(sign(bitand(t.sys_evts, 1)), 1, 'OR SHUTDOWN ',
'SHUTDOWN ')) ||
decode(bitand(t.sys_evts, 4), 4,
decode(sign(bitand(t.sys_evts, 3)), 1, 'OR ERROR ',
'ERROR ')) ||
decode(bitand(t.sys_evts, 8), 8,
decode(sign(bitand(t.sys_evts, 7)), 1, 'OR LOGON ',
'LOGON ')) ||
decode(bitand(t.sys_evts, 16), 16,
decode(sign(bitand(t.sys_evts, 15)), 1, 'OR LOGOFF ',
'LOGOFF ')) ||
decode(bitand(t.sys_evts, 262176), 32,
decode(sign(bitand(t.sys_evts, 31)), 1, 'OR CREATE ',
'CREATE ')) ||
decode(bitand(t.sys_evts, 262208), 64,
decode(sign(bitand(t.sys_evts, 63)), 1, 'OR ALTER ',
'ALTER ')) ||
decode(bitand(t.sys_evts, 262272), 128,
decode(sign(bitand(t.sys_evts, 127)), 1, 'OR DROP ',
'DROP ')) ||
decode (bitand(t.sys_evts, 262400), 256,
decode(sign(bitand(t.sys_evts, 255)), 1, 'OR ANALYZE ',
'ANALYZE ')) ||
decode (bitand(t.sys_evts, 262656), 512,
decode(sign(bitand(t.sys_evts, 511)), 1, 'OR COMMENT ',
'COMMENT ')) ||
decode (bitand(t.sys_evts, 263168), 1024,
decode(sign(bitand(t.sys_evts, 1023)), 1, 'OR GRANT ',
'GRANT ')) ||
decode (bitand(t.sys_evts, 264192), 2048,
decode(sign(bitand(t.sys_evts, 2047)), 1, 'OR REVOKE ',
'REVOKE ')) ||
decode (bitand(t.sys_evts, 266240), 4096,
decode(sign(bitand(t.sys_evts, 4095)), 1, 'OR TRUNCATE ',
'TRUNCATE ')) ||
decode (bitand(t.sys_evts, 270336), 8192,
decode(sign(bitand(t.sys_evts, 8191)), 1, 'OR RENAME ',
'RENAME ')) ||
decode (bitand(t.sys_evts, 278528), 16384,
decode(sign(bitand(t.sys_evts, 16383)), 1, 'OR ASSOCIATE STATISTICS ',
'ASSOCIATE STATISTICS ')) ||
decode (bitand(t.sys_evts, 294912), 32768,
decode(sign(bitand(t.sys_evts, 32767)), 1, 'OR AUDIT ',
'AUDIT ')) ||
decode (bitand(t.sys_evts, 327680), 65536,
decode(sign(bitand(t.sys_evts, 65535)), 1,
'OR DISASSOCIATE STATISTICS ', 'DISASSOCIATE STATISTICS ')) ||
decode (bitand(t.sys_evts, 393216), 131072,
decode(sign(bitand(t.sys_evts, 131071)), 1, 'OR NOAUDIT ',
'NOAUDIT ')) ||
decode (bitand(t.sys_evts, 262144), 262144,
decode(sign(bitand(t.sys_evts, 31)), 1, 'OR DDL ',
'DDL ')) ||
decode (bitand(t.sys_evts, 8388608), 8388608,
decode(sign(bitand(t.sys_evts, 8388607)), 1, 'OR SUSPEND ',
'SUSPEND ')),
tabuser.name,
'SCHEMA',
NULL,
NULL,
'REFERENCING NEW AS '||t.refnewname||' OLD AS '||t.refoldname,
t.whenclause,decode(t.enabled, 0, 'DISABLED', 1, 'ENABLED', 'ERROR'),
t.definition,
decode(bitand(t.property, 2), 2, 'CALL',
'PL/SQL '),
t.action#,
'NO',
'NO',
'NO',
'NO',
'NO',
'NO',
'NO',
'NO'
from sys."_CURRENT_EDITION_OBJ" trigobj,
sys.trigger$ t,
sys.user$ tabuser,
sys.user$ triguser
where (trigobj.obj# = t.obj# and
trigobj.owner# = triguser.user# and
tabuser.user# = t.baseobject and
bitand(t.property, 63) >= 16 and bitand(t.property, 63) < 32 and
bitand(trigobj.flags, 128) = 0 and
(
trigobj.owner# = userenv('SCHEMAID') or
tabuser.user# = userenv('SCHEMAID') or
exists (select null from v$enabledprivs
where priv_number = -152 /* CREATE ANY TRIGGER */)))
union all
select triguser.name, trigobj.name,
decode(t.type#, 0, 'BEFORE STATEMENT',
1, 'BEFORE EACH ROW',
2, 'AFTER STATEMENT',
3, 'AFTER EACH ROW',
4, 'INSTEAD OF',
5, 'COMPOUND',
'UNDEFINED'),
decode(t.insert$*100 + t.update$*10 + t.delete$,
100, 'INSERT',
010, 'UPDATE',
001, 'DELETE',
110, 'INSERT OR UPDATE',
101, 'INSERT OR DELETE',
011, 'UPDATE OR DELETE',
111, 'INSERT OR UPDATE OR DELETE', 'ERROR'),
tabuser.name,
decode(bitand(t.property, 1), 1, 'VIEW',
0, 'TABLE',
'UNDEFINED'),
tabobj.name, ntcol.name,
'REFERENCING NEW AS '||t.refnewname||' OLD AS '||t.refoldname ||
' PARENT AS ' || t.refprtname,
t.whenclause,decode(t.enabled, 0, 'DISABLED', 1, 'ENABLED', 'ERROR'),
t.definition,
decode(bitand(t.property, 2), 2, 'CALL',
'PL/SQL '),
t.action#,
decode(bitand(t.property, 8192),
8192, decode(bitand(t.property, 131072),
131072, 'REVERSE', 'FORWARD'), 'NO'),
decode(bitand(t.property, 256),
256, 'YES', 'NO'),
decode(bitand(t.property, 512),
512, 'YES', 'NO'),
decode(bitand(t.property, 1024),
1024, 'YES', 'NO'),
decode(bitand(t.property, 2048),
2048, 'YES', 'NO'),
decode(bitand(t.property, 4096 ),
4096, 'YES', 'NO'),
decode(bitand(t.property, 128), /* FOO */
128, 'YES', 'NO'),
decode(bitand(t.property, 262144), /* ASO */
262144, 'YES', 'NO')
from sys."_CURRENT_EDITION_OBJ" trigobj,
sys."_CURRENT_EDITION_OBJ" tabobj,
sys.trigger$ t,
sys.user$ tabuser,
sys.user$ triguser,
sys.viewtrcol$ ntcol
where (trigobj.obj# = t.obj# and
tabobj.obj# = t.baseobject and
trigobj.owner# = triguser.user# and
tabobj.owner# = tabuser.user# and
bitand(t.property, 63) >= 32 and
bitand(trigobj.flags, 128) = 0 and
t.nttrigcol = ntcol.intcol# and
t.nttrigatt = ntcol.attribute# and
t.baseobject = ntcol.obj# and
(
trigobj.owner# = userenv('SCHEMAID') or
tabobj.owner# = userenv('SCHEMAID') or
tabobj.obj# in
(select oa3.obj# from sys.objauth$ oa3 where grantee# in
(select kzsrorol from x$kzsro)) or
exists (select null from v$enabledprivs
where priv_number = -152 /* CREATE ANY TRIGGER */)))
SELECT TRIGUSER.NAME
, TRIGOBJ.NAME
,
DECODE(T.TYPE#
, 0
, 'BEFORE STATEMENT'
,
1
, 'BEFORE EACH ROW'
,
2
, 'AFTER STATEMENT'
,
3
, 'AFTER EACH ROW'
,
4
, 'INSTEAD OF'
,
5
, 'COMPOUND'
,
'UNDEFINED')
,
DECODE(DECODE(BITAND(T.PROPERTY
, 524288)
, 524288
, 1000
, 0) + T.INSERT$*100 + T.UPDATE$*10 + T.DELETE$
,
0100
, 'INSERT'
,
0010
, 'UPDATE'
,
0001
, 'DELETE'
,
0110
, 'INSERT OR UPDATE'
,
0101
, 'INSERT OR DELETE'
,
0011
, 'UPDATE OR DELETE'
,
0111
, 'INSERT OR UPDATE OR DELETE'
,
1000
, 'LOGICAL LOB UPDATE'
,
'ERROR')
,
TABUSER.NAME
,
DECODE(BITAND(T.PROPERTY
, 1)
, 1
, 'VIEW'
,
0
, 'TABLE'
,
'UNDEFINED')
,
TABOBJ.NAME
, NULL
,
'REFERENCING NEW AS '||T.REFNEWNAME||' OLD AS '||T.REFOLDNAME
,
T.WHENCLAUSE
, DECODE(T.ENABLED
, 0
, 'DISABLED'
, 1
, 'ENABLED'
, 'ERROR')
,
T.DEFINITION
,
DECODE(BITAND(T.PROPERTY
, 2)
, 2
, 'CALL'
,
'PL/SQL ')
,
T.ACTION#
,
DECODE(BITAND(T.PROPERTY
, 8192)
,
8192
, DECODE(BITAND(T.PROPERTY
, 131072)
,
131072
, 'REVERSE'
, 'FORWARD')
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 256)
,
256
, 'YES'
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 512)
,
512
, 'YES'
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 1024)
,
1024
, 'YES'
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 2048)
,
2048
, 'YES'
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 4096 )
,
4096
, 'YES'
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 128)
, /* FOO */
128
, 'YES'
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 262144)
, /* ASO */
262144
, 'YES'
, 'NO')
FROM SYS."_CURRENT_EDITION_OBJ" TRIGOBJ
,
SYS."_CURRENT_EDITION_OBJ" TABOBJ
,
SYS.TRIGGER$ T
,
SYS.USER$ TABUSER
,
SYS.USER$ TRIGUSER
WHERE (TRIGOBJ.OBJ# = T.OBJ# AND
TABOBJ.OBJ# = T.BASEOBJECT AND
TRIGOBJ.OWNER# = TRIGUSER.USER# AND
TABOBJ.OWNER# = TABUSER.USER# AND
BITAND(TRIGOBJ.FLAGS
, 128) = 0 AND
BITAND(T.PROPERTY
, 63) < 8 AND
(
TRIGOBJ.OWNER# = USERENV('SCHEMAID') OR
TABOBJ.OWNER# = USERENV('SCHEMAID') OR
TABOBJ.OBJ# IN
(SELECT OA1.OBJ#
FROM SYS.OBJAUTH$ OA1
WHERE GRANTEE# IN
(SELECT KZSROROL
FROM X$KZSRO)) OR
EXISTS (SELECT NULL
FROM V$ENABLEDPRIVS
WHERE PRIV_NUMBER = -152 /* CREATE ANY TRIGGER */)))
UNION ALL
SELECT TRIGUSER.NAME
, TRIGOBJ.NAME
,
DECODE(T.TYPE#
, 0
, 'BEFORE EVENT'
,
2
, 'AFTER EVENT'
,
'UNDEFINED')
,
DECODE(BITAND(T.SYS_EVTS
, 1)
, 1
, 'STARTUP ') ||
DECODE(BITAND(T.SYS_EVTS
, 2)
, 2
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 1))
, 1
, 'OR SHUTDOWN '
,
'SHUTDOWN ')) ||
DECODE(BITAND(T.SYS_EVTS
, 4)
, 4
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 3))
, 1
, 'OR ERROR '
,
'ERROR ')) ||
DECODE(BITAND(T.SYS_EVTS
, 8)
, 8
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 7))
, 1
, 'OR LOGON '
,
'LOGON ')) ||
DECODE(BITAND(T.SYS_EVTS
, 16)
, 16
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 15))
, 1
, 'OR LOGOFF '
,
'LOGOFF ')) ||
DECODE(BITAND(T.SYS_EVTS
, 262176)
, 32
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 31))
, 1
, 'OR CREATE '
,
'CREATE ')) ||
DECODE(BITAND(T.SYS_EVTS
, 262208)
, 64
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 63))
, 1
, 'OR ALTER '
,
'ALTER ')) ||
DECODE(BITAND(T.SYS_EVTS
, 262272)
, 128
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 127))
, 1
, 'OR DROP '
,
'DROP ')) ||
DECODE (BITAND(T.SYS_EVTS
, 262400)
, 256
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 255))
, 1
, 'OR ANALYZE '
,
'ANALYZE ')) ||
DECODE (BITAND(T.SYS_EVTS
, 262656)
, 512
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 511))
, 1
, 'OR COMMENT '
,
'COMMENT ')) ||
DECODE (BITAND(T.SYS_EVTS
, 263168)
, 1024
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 1023))
, 1
, 'OR GRANT '
,
'GRANT ')) ||
DECODE (BITAND(T.SYS_EVTS
, 264192)
, 2048
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 2047))
, 1
, 'OR REVOKE '
,
'REVOKE ')) ||
DECODE (BITAND(T.SYS_EVTS
, 266240)
, 4096
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 4095))
, 1
, 'OR TRUNCATE '
,
'TRUNCATE ')) ||
DECODE (BITAND(T.SYS_EVTS
, 270336)
, 8192
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 8191))
, 1
, 'OR RENAME '
,
'RENAME ')) ||
DECODE (BITAND(T.SYS_EVTS
, 278528)
, 16384
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 16383))
, 1
, 'OR ASSOCIATE STATISTICS '
,
'ASSOCIATE STATISTICS ')) ||
DECODE (BITAND(T.SYS_EVTS
, 294912)
, 32768
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 32767))
, 1
, 'OR AUDIT '
,
'AUDIT ')) ||
DECODE (BITAND(T.SYS_EVTS
, 327680)
, 65536
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 65535))
, 1
,
'OR DISASSOCIATE STATISTICS '
, 'DISASSOCIATE STATISTICS ')) ||
DECODE (BITAND(T.SYS_EVTS
, 393216)
, 131072
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 131071))
, 1
, 'OR NOAUDIT '
,
'NOAUDIT ')) ||
DECODE (BITAND(T.SYS_EVTS
, 262144)
, 262144
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 31))
, 1
, 'OR DDL '
,
'DDL ')) ||
DECODE (BITAND(T.SYS_EVTS
, 8388608)
, 8388608
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 8388607))
, 1
, 'OR SUSPEND '
,
'SUSPEND ')) ||
DECODE (BITAND(T.SYS_EVTS
, 33554432)
, 33554432
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 33554431))
, 1
, 'OR CLONE '
,
'CLONE ')) ||
DECODE (BITAND(T.SYS_EVTS
, 67108864)
, 67108864
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 67108863))
, 1
, 'OR UNPLUG '
,
'UNPLUG '))
,
'SYS'
,
DECODE(BITAND(T.PROPERTY
, 8)
, 8
, 'DATABASE '
, 'PLUGGABLE DATABASE')
,
NULL
,
NULL
,
'REFERENCING NEW AS '||T.REFNEWNAME||' OLD AS '||T.REFOLDNAME
,
T.WHENCLAUSE
, DECODE(T.ENABLED
, 0
, 'DISABLED'
, 1
, 'ENABLED'
, 'ERROR')
,
T.DEFINITION
,
DECODE(BITAND(T.PROPERTY
, 2)
, 2
, 'CALL'
,
'PL/SQL ')
,
T.ACTION#
,
'NO'
,
'NO'
,
'NO'
,
'NO'
,
'NO'
,
'NO'
,
'NO'
,
'NO'
FROM SYS."_CURRENT_EDITION_OBJ" TRIGOBJ
,
SYS.TRIGGER$ T
,
SYS.USER$ TRIGUSER
WHERE (TRIGOBJ.OBJ# = T.OBJ# AND
TRIGOBJ.OWNER# = TRIGUSER.USER# AND
BITAND(T.PROPERTY
, 48) = 0
AND BITAND(T.PROPERTY
, 1048584) != 0 AND
BITAND(TRIGOBJ.FLAGS
, 128) = 0 AND
(
TRIGOBJ.OWNER# = USERENV('SCHEMAID') OR
EXISTS (SELECT NULL
FROM V$ENABLEDPRIVS
WHERE PRIV_NUMBER = -152 /* CREATE ANY TRIGGER */)))
UNION ALL
SELECT TRIGUSER.NAME
, TRIGOBJ.NAME
,
DECODE(T.TYPE#
, 0
, 'BEFORE EVENT'
,
2
, 'AFTER EVENT'
,
'UNDEFINED')
,
DECODE(BITAND(T.SYS_EVTS
, 1)
, 1
, 'STARTUP ') ||
DECODE(BITAND(T.SYS_EVTS
, 2)
, 2
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 1))
, 1
, 'OR SHUTDOWN '
,
'SHUTDOWN ')) ||
DECODE(BITAND(T.SYS_EVTS
, 4)
, 4
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 3))
, 1
, 'OR ERROR '
,
'ERROR ')) ||
DECODE(BITAND(T.SYS_EVTS
, 8)
, 8
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 7))
, 1
, 'OR LOGON '
,
'LOGON ')) ||
DECODE(BITAND(T.SYS_EVTS
, 16)
, 16
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 15))
, 1
, 'OR LOGOFF '
,
'LOGOFF ')) ||
DECODE(BITAND(T.SYS_EVTS
, 262176)
, 32
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 31))
, 1
, 'OR CREATE '
,
'CREATE ')) ||
DECODE(BITAND(T.SYS_EVTS
, 262208)
, 64
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 63))
, 1
, 'OR ALTER '
,
'ALTER ')) ||
DECODE(BITAND(T.SYS_EVTS
, 262272)
, 128
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 127))
, 1
, 'OR DROP '
,
'DROP ')) ||
DECODE (BITAND(T.SYS_EVTS
, 262400)
, 256
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 255))
, 1
, 'OR ANALYZE '
,
'ANALYZE ')) ||
DECODE (BITAND(T.SYS_EVTS
, 262656)
, 512
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 511))
, 1
, 'OR COMMENT '
,
'COMMENT ')) ||
DECODE (BITAND(T.SYS_EVTS
, 263168)
, 1024
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 1023))
, 1
, 'OR GRANT '
,
'GRANT ')) ||
DECODE (BITAND(T.SYS_EVTS
, 264192)
, 2048
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 2047))
, 1
, 'OR REVOKE '
,
'REVOKE ')) ||
DECODE (BITAND(T.SYS_EVTS
, 266240)
, 4096
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 4095))
, 1
, 'OR TRUNCATE '
,
'TRUNCATE ')) ||
DECODE (BITAND(T.SYS_EVTS
, 270336)
, 8192
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 8191))
, 1
, 'OR RENAME '
,
'RENAME ')) ||
DECODE (BITAND(T.SYS_EVTS
, 278528)
, 16384
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 16383))
, 1
, 'OR ASSOCIATE STATISTICS '
,
'ASSOCIATE STATISTICS ')) ||
DECODE (BITAND(T.SYS_EVTS
, 294912)
, 32768
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 32767))
, 1
, 'OR AUDIT '
,
'AUDIT ')) ||
DECODE (BITAND(T.SYS_EVTS
, 327680)
, 65536
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 65535))
, 1
,
'OR DISASSOCIATE STATISTICS '
, 'DISASSOCIATE STATISTICS ')) ||
DECODE (BITAND(T.SYS_EVTS
, 393216)
, 131072
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 131071))
, 1
, 'OR NOAUDIT '
,
'NOAUDIT ')) ||
DECODE (BITAND(T.SYS_EVTS
, 262144)
, 262144
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 31))
, 1
, 'OR DDL '
,
'DDL ')) ||
DECODE (BITAND(T.SYS_EVTS
, 8388608)
, 8388608
,
DECODE(SIGN(BITAND(T.SYS_EVTS
, 8388607))
, 1
, 'OR SUSPEND '
,
'SUSPEND '))
,
TABUSER.NAME
,
'SCHEMA'
,
NULL
,
NULL
,
'REFERENCING NEW AS '||T.REFNEWNAME||' OLD AS '||T.REFOLDNAME
,
T.WHENCLAUSE
, DECODE(T.ENABLED
, 0
, 'DISABLED'
, 1
, 'ENABLED'
, 'ERROR')
,
T.DEFINITION
,
DECODE(BITAND(T.PROPERTY
, 2)
, 2
, 'CALL'
,
'PL/SQL ')
,
T.ACTION#
,
'NO'
,
'NO'
,
'NO'
,
'NO'
,
'NO'
,
'NO'
,
'NO'
,
'NO'
FROM SYS."_CURRENT_EDITION_OBJ" TRIGOBJ
,
SYS.TRIGGER$ T
,
SYS.USER$ TABUSER
,
SYS.USER$ TRIGUSER
WHERE (TRIGOBJ.OBJ# = T.OBJ# AND
TRIGOBJ.OWNER# = TRIGUSER.USER# AND
TABUSER.USER# = T.BASEOBJECT AND
BITAND(T.PROPERTY
, 63) >= 16
AND BITAND(T.PROPERTY
, 63) < 32 AND
BITAND(TRIGOBJ.FLAGS
, 128) = 0 AND
(
TRIGOBJ.OWNER# = USERENV('SCHEMAID') OR
TABUSER.USER# = USERENV('SCHEMAID') OR
EXISTS (SELECT NULL
FROM V$ENABLEDPRIVS
WHERE PRIV_NUMBER = -152 /* CREATE ANY TRIGGER */)))
UNION ALL
SELECT TRIGUSER.NAME
, TRIGOBJ.NAME
,
DECODE(T.TYPE#
, 0
, 'BEFORE STATEMENT'
,
1
, 'BEFORE EACH ROW'
,
2
, 'AFTER STATEMENT'
,
3
, 'AFTER EACH ROW'
,
4
, 'INSTEAD OF'
,
5
, 'COMPOUND'
,
'UNDEFINED')
,
DECODE(T.INSERT$*100 + T.UPDATE$*10 + T.DELETE$
,
100
, 'INSERT'
,
010
, 'UPDATE'
,
001
, 'DELETE'
,
110
, 'INSERT OR UPDATE'
,
101
, 'INSERT OR DELETE'
,
011
, 'UPDATE OR DELETE'
,
111
, 'INSERT OR UPDATE OR DELETE'
, 'ERROR')
,
TABUSER.NAME
,
DECODE(BITAND(T.PROPERTY
, 1)
, 1
, 'VIEW'
,
0
, 'TABLE'
,
'UNDEFINED')
,
TABOBJ.NAME
, NTCOL.NAME
,
'REFERENCING NEW AS '||T.REFNEWNAME||' OLD AS '||T.REFOLDNAME ||
' PARENT AS ' || T.REFPRTNAME
,
T.WHENCLAUSE
, DECODE(T.ENABLED
, 0
, 'DISABLED'
, 1
, 'ENABLED'
, 'ERROR')
,
T.DEFINITION
,
DECODE(BITAND(T.PROPERTY
, 2)
, 2
, 'CALL'
,
'PL/SQL ')
,
T.ACTION#
,
DECODE(BITAND(T.PROPERTY
, 8192)
,
8192
, DECODE(BITAND(T.PROPERTY
, 131072)
,
131072
, 'REVERSE'
, 'FORWARD')
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 256)
,
256
, 'YES'
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 512)
,
512
, 'YES'
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 1024)
,
1024
, 'YES'
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 2048)
,
2048
, 'YES'
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 4096 )
,
4096
, 'YES'
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 128)
, /* FOO */
128
, 'YES'
, 'NO')
,
DECODE(BITAND(T.PROPERTY
, 262144)
, /* ASO */
262144
, 'YES'
, 'NO')
FROM SYS."_CURRENT_EDITION_OBJ" TRIGOBJ
,
SYS."_CURRENT_EDITION_OBJ" TABOBJ
,
SYS.TRIGGER$ T
,
SYS.USER$ TABUSER
,
SYS.USER$ TRIGUSER
,
SYS.VIEWTRCOL$ NTCOL
WHERE (TRIGOBJ.OBJ# = T.OBJ# AND
TABOBJ.OBJ# = T.BASEOBJECT AND
TRIGOBJ.OWNER# = TRIGUSER.USER# AND
TABOBJ.OWNER# = TABUSER.USER# AND
BITAND(T.PROPERTY
, 63) >= 32 AND
BITAND(TRIGOBJ.FLAGS
, 128) = 0 AND
T.NTTRIGCOL = NTCOL.INTCOL# AND
T.NTTRIGATT = NTCOL.ATTRIBUTE# AND
T.BASEOBJECT = NTCOL.OBJ# AND
(
TRIGOBJ.OWNER# = USERENV('SCHEMAID') OR
TABOBJ.OWNER# = USERENV('SCHEMAID') OR
TABOBJ.OBJ# IN
(SELECT OA3.OBJ#
FROM SYS.OBJAUTH$ OA3
WHERE GRANTEE# IN
(SELECT KZSROROL
FROM X$KZSRO)) OR
EXISTS (SELECT NULL
FROM V$ENABLEDPRIVS
WHERE PRIV_NUMBER = -152 /* CREATE ANY TRIGGER */)))
|
|
|