USER_CONSTRAINTS renverrait également des clés étrangères. Vous n'avez besoin que de clés primaires et uniques. Mais l'unicité peut également être obtenue via un index unique. Il ne sera pas affiché dans la liste des contraintes. Vous devez regarder la vue USER_INDEXES. Le bon point est que les clés primaires et uniques créent des index uniques correspondants. Il est donc nécessaire et suffisant de vérifier USER_INDEXES.
UPD :voir Lalit Kumar B le commentaire de.
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