Puoi interrogare la vista ALL_OBJECTS:
select owner
, object_name
, object_type
from ALL_OBJECTS
where object_name = 'FOO'
Per trovare i sinonimi:
select *
from ALL_SYNONYMS
where synonym_name = 'FOO'
Giusto per chiarire, se un utente l'istruzione SQL dell'utente fa riferimento a un nome oggetto senza qualifica dello schema (ad es. 'FOO'), Oracle FIRST controlla lo schema dell'utente per un oggetto con quel nome (inclusi i sinonimi nello schema di quell'utente). Se Oracle non riesce a risolvere il riferimento dallo schema dell'utente, Oracle verifica la presenza di un sinonimo pubblico.
Se stai cercando specificamente i vincoli su un nome_tabella particolare:
select c.*
from all_constraints c
where c.table_name = 'FOO'
union all
select cs.*
from all_constraints cs
join all_synonyms s
on (s.table_name = cs.table_name
and s.table_owner = cs.owner
and s.synonym_name = 'FOO'
)
HTH
-- addendum:
Se al tuo utente è concesso l'accesso alle viste DBA_ (ad es. se al tuo utente è stato concesso SELECT_CATALOG_ROLE), puoi sostituire 'DBA_
' al posto di 'ALL_
' negli esempi SQL precedenti. Il ALL_x
le viste mostrano solo gli oggetti a cui sono stati concessi privilegi. Il DBA_x
le visualizzazioni mostreranno tutti gli oggetti del database, indipendentemente dal fatto che tu abbia i privilegi o meno.