sql >> Database teknologi >  >> RDS >> Oracle

Hvordan kan jeg finde EJEREN af et objekt i Oracle?

Du kan forespørge på visningen ALL_OBJECTS:

select owner
     , object_name
     , object_type
  from ALL_OBJECTS
 where object_name = 'FOO'

Sådan finder du synonymer:

select *
  from ALL_SYNONYMS
 where synonym_name = 'FOO'

Bare for at præcisere, hvis en bruger brugerens SQL-sætning refererer til et objektnavn uden skemakvalifikation (f.eks. 'FOO'), Oracle FIRST kontrollerer brugerens skema for et objekt med det navn (inklusive synonymer i denne brugers skema). Hvis Oracle ikke kan løse referencen fra brugerens skema, søger Oracle derefter for et offentligt synonym.

Hvis du søger specifikt efter begrænsninger på et bestemt tabelnavn:

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

-- tillæg:

Hvis din bruger får adgang til DBA_-visningerne (f.eks. hvis din bruger har fået tildelt SELECT_CATALOG_ROLE), kan du erstatte 'DBA_ ' i stedet for 'ALL_ ' i de foregående SQL-eksempler. ALL_x visninger viser kun objekter, som du har fået privilegier. DBA_x visninger vil vise alle databaseobjekter, uanset om du har rettigheder til dem eller ej.



  1. VÆLG mange til mange tabeller i én forespørgsel

  2. Benchmarking Postgres-XL

  3. Blanding af lagrede procedurer til midlertidige tabeller fra forskellige påkaldelser

  4. INSERT COMMAND ::FEJL:kolonneværdien findes ikke