SYS.ALL_CONSTRAINTS的定义如下:
CREATE OR REPLACE VIEW ALL_CONSTRAINTS AS select OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, SEARCH_CONDITION, SEARCH_CONDITION_VC, R_OWNER, R_CONSTRAINT_NAME, DELETE_RULE, STATUS, DEFERRABLE, DEFERRED, VALIDATED, GENERATED, BAD, RELY, LAST_CHANGE, INDEX_OWNER, INDEX_NAME, INVALID, VIEW_RELATED, ORIGIN_CON_ID from INT$DBA_CONSTRAINTS where (OWNER = SYS_CONTEXT('USERENV', 'CURRENT_USER') or OBJ_ID(OWNER, TABLE_NAME, OBJECT_TYPE#, OBJECT_ID) in (select obj# from sys.objauth$ 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 */) ) )
SYS.ALL_CONS_COLUMNS的定义如下:
CREATE OR REPLACE VIEW ALL_CONS_COLUMNS (owner, constraint_name, table_name, column_name, position) AS select u.name, c.name, o.name, decode(ac.name, null, col.name, ac.name), cc.pos# from sys.user$ u, sys.con$ c, sys.col$ col, sys.ccol$ cc, sys.cdef$ cd, sys."_CURRENT_EDITION_OBJ" o, sys.attrcol$ ac where c.owner# = u.user# and c.con# = cd.con# and (cd.type# < 14 or cd.type# > 17) /* don't include supplog cons */ and (cd.type# != 12) /* don't include log group cons */ and cd.con# = cc.con# and cc.obj# = col.obj# and cc.intcol# = col.intcol# and cc.obj# = o.obj# and (c.owner# = userenv('SCHEMAID') or cd.obj# in (select obj# from sys.objauth$ 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 */) ) ) and col.obj# = ac.obj#(+) and col.intcol# = ac.intcol#(+)
时间: 2024-10-10 18:47:51