USER_CONSTRAINTS ville også returnere fremmednøgler. Du behøver kun primære og unikke nøgler. Men unikhed kan også opnås via unikt indeks. Det vil ikke blive vist på listen over begrænsninger. Du skal se visningen USER_INDEXES. Den gode pointe er, at primære og unikke nøgler skaber tilsvarende unikke indekser. Så det er nødvendigt og tilstrækkeligt at kontrollere USER_INDEXES.
UPD:se Lalit Kumar B 's kommentar.
select c.COLUMN_NAME
from USER_INDEXES i, USER_IND_COLUMNS c
where i.TABLE_NAME = 'YOUR_TABLE'
and i.UNIQUENESS = 'UNIQUE'
and i.TABLE_NAME = c.TABLE_NAME
and i.INDEX_NAME = c.INDEX_NAME
union
select cc.COLUMN_NAME
from USER_CONSTRAINTS con, USER_CONS_COLUMNS cc
where con.TABLE_NAME = 'YOUR_TABLE'
and con.CONSTRAINT_TYPE in ( 'U', 'P' )
and con.TABLE_NAME = cc.TABLE_NAME
and con.CONSTRAINT_NAME = cc.CONSTRAINT_NAME