Je viens de trouver un petit quelque chose de sympatoche sur les dictionnaires de données :
ALL_CONSTRAINTS(OWNER TABLE_NAME CONSTRAINT_NAME CONSTRAINT_TYPE
R_CONSTRAINT_NAME DELETE_RULE SEARCH_CONDITION)CONSTRAINT_TYPE :
définition du type de contraintes
C pour CHECK, P pour PRIMARY, pour UNIQUE,
R pour une contrainte d'intégrité référentielle.
R_CONSTRAINT_NAME : nom de la contrainte
UNIQUE ou PRIMARY KEY
pour la table référencée d'une contrainte d'intégrité référentielle.
DELETE_RULE : Règle de suppression pour une contrainte référentielle)
CASCADE ou NO ACTION (voir question 16).
SEARCH_CONDITION : Condition d'une contrainte de type CHECK.
ALL_CONS_COLUMNS(OWNER TABLE_NAME CONSTRAINT_NAME COLUMN_NAME POSITION).
POSITION : Position de la colonne dans la définition de la table.
utilisation possible pour lister les contraintes de type foreign key ainsi que les règles d'intégrité :
select TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPE, DELETE_RULES from ALL_CONSTRAINTS where CONSTRAINT_TYPE='R';