DBA Data[Home] [Help]

VIEW: SYS.ALL_PART_KEY_COLUMNS

Source

View Text - Preformatted

select u.name, o.name, 'TABLE',
  decode(bitand(c.property, 1), 1, a.name, c.name), pc.pos#
from partcol$ pc, obj$ o, col$ c, user$ u, attrcol$ a
where pc.obj# = o.obj# and pc.obj# = c.obj# and c.intcol# = pc.intcol# and
      c.obj#    = a.obj#(+) and c.intcol# = a.intcol#(+) and
      u.user# = o.owner# and o.subname IS NULL and
      o.namespace = 1 and o.remoteowner IS NULL and o.linkname IS NULL and
      (o.owner# = userenv('SCHEMAID')
       or pc.obj# in
            (select oa.obj#
             from sys.objauth$ oa
             where grantee# in ( select kzsrorol
                                 from x$kzsro
                               )
            )
       or /* user has system privileges */
         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 */)
                 )
      )
union
select u.name, io.name, 'INDEX',
  decode(bitand(c.property, 1), 1, a.name, c.name), pc.pos#
from partcol$ pc, obj$ io, col$ c, user$ u, ind$ i, attrcol$ a
where pc.obj# = i.obj# and i.obj# = io.obj# and i.bo# = c.obj# and
     c.intcol# = pc.intcol# and u.user# = io.owner# and
     c.obj# = a.obj#(+) and c.intcol# = a.intcol#(+) and
     io.subname IS NULL and
     io.namespace = 4 and io.remoteowner IS NULL and io.linkname IS NULL and
      (io.owner# = userenv('SCHEMAID')
       or i.bo# in
            (select oa.obj#
             from sys.objauth$ oa
             where grantee# in ( select kzsrorol
                                 from x$kzsro
                               )
            )
       or /* user has system privileges */
         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 */)
                 )
      )
View Text - HTML Formatted

SELECT U.NAME
, O.NAME
, 'TABLE'
, DECODE(BITAND(C.PROPERTY
, 1)
, 1
, A.NAME
, C.NAME)
, PC.POS# FROM PARTCOL$ PC
, OBJ$ O
, COL$ C
, USER$ U
, ATTRCOL$ A WHERE PC.OBJ# = O.OBJ#
AND PC.OBJ# = C.OBJ#
AND C.INTCOL# = PC.INTCOL# AND C.OBJ# = A.OBJ#(+)
AND C.INTCOL# = A.INTCOL#(+) AND U.USER# = O.OWNER#
AND O.SUBNAME IS NULL AND O.NAMESPACE = 1
AND O.REMOTEOWNER IS NULL
AND O.LINKNAME IS NULL AND (O.OWNER# = USERENV('SCHEMAID') OR PC.OBJ# IN (SELECT OA.OBJ#
FROM SYS.OBJAUTH$ OA
WHERE GRANTEE# IN ( SELECT KZSROROL
FROM X$KZSRO ) ) OR /* USER HAS SYSTEM PRIVILEGES */ 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 */) ) ) UNION SELECT U.NAME
, IO.NAME
, 'INDEX'
, DECODE(BITAND(C.PROPERTY
, 1)
, 1
, A.NAME
, C.NAME)
, PC.POS# FROM PARTCOL$ PC
, OBJ$ IO
, COL$ C
, USER$ U
, IND$ I
, ATTRCOL$ A WHERE PC.OBJ# = I.OBJ#
AND I.OBJ# = IO.OBJ#
AND I.BO# = C.OBJ# AND C.INTCOL# = PC.INTCOL#
AND U.USER# = IO.OWNER# AND C.OBJ# = A.OBJ#(+)
AND C.INTCOL# = A.INTCOL#(+) AND IO.SUBNAME IS NULL AND IO.NAMESPACE = 4
AND IO.REMOTEOWNER IS NULL
AND IO.LINKNAME IS NULL AND (IO.OWNER# = USERENV('SCHEMAID') OR I.BO# IN (SELECT OA.OBJ#
FROM SYS.OBJAUTH$ OA
WHERE GRANTEE# IN ( SELECT KZSROROL
FROM X$KZSRO ) ) OR /* USER HAS SYSTEM PRIVILEGES */ 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 */) ) )