sql >> Databáze >  >> RDS >> Oracle

Získat seznam všech tabulek v Oracle?

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.



  1. Výběr hodnot z proměnné tabulky Oracle / pole?

  2. Neznámý Sloupec V Ustanovení Kde

  3. HAS_DBACCESS() – Zjistěte, zda má uživatel přístup k databázi na serveru SQL Server

  4. Jak načíst sadu znaků pomocí SUBSTRING v SQL?