SELECT owner, table_name
FROM dba_tables
To za předpokladu, že máte přístup k DBA_TABLES pohled na datový slovník. Pokud tato oprávnění nemáte, ale potřebujete je, můžete požádat, aby vám DBA výslovně udělil oprávnění k této tabulce, nebo aby vám DBA udělil SELECT ANY DICTIONARY oprávnění nebo SELECT_CATALOG_ROLE role (kterákoliv z nich vám umožní dotazovat se na jakoukoli tabulku datového slovníku). Samozřejmě můžete chtít vyloučit určitá schémata jako SYS a SYSTEM které mají velké množství tabulek Oracle, které vás pravděpodobně nezajímají.
Případně, pokud nemáte přístup k DBA_TABLES , můžete zobrazit všechny tabulky, ke kterým má váš účet přístup, prostřednictvím ALL_TABLES zobrazit:
SELECT owner, table_name
FROM all_tables
I když to může být podmnožina tabulek dostupných v databázi (ALL_TABLES zobrazí informace o všech tabulkách, ke kterým byl vašemu uživateli udělen přístup).
Pokud vás zajímají pouze tabulky, které vlastníte, nikoli ty, ke kterým máte přístup, můžete použít USER_TABLES :
SELECT table_name
FROM user_tables
Od USER_TABLES má pouze informace o tabulkách, které vlastníte, nemá OWNER sloupec – vlastníkem jste podle definice vy.
Oracle má také řadu starších zobrazení datového slovníku -- TAB , DICT , TABS a CAT například-- to by se dalo použít. Obecně bych nedoporučoval používat tyto starší pohledy, pokud nezbytně nepotřebujete backportovat své skripty do Oracle 6. Oracle tyto pohledy dlouho nezměnil, takže mají často problémy s novějšími typy objektů. Například TAB a CAT oba pohledy zobrazují informace o tabulkách, které jsou v koši uživatele, zatímco [DBA|ALL|USER]_TABLES zobrazení všechny je odfiltrují. CAT také zobrazuje informace o protokolech materializovaných zobrazení s TABLE_TYPE "TABLE", což pravděpodobně nebude to, co opravdu chcete. DICT kombinuje tabulky a synonyma a neřekne vám, kdo je vlastníkem objektu.