sql >> Database >  >> RDS >> Oracle

Krijg een lijst van alle tabellen in Oracle?

SELECT owner, table_name
  FROM dba_tables

Dit veronderstelt dat u toegang heeft tot de DBA_TABLES gegevenswoordenboek bekijken. Als u deze privileges niet hebt maar ze wel nodig hebt, kunt u verzoeken dat de DBA u expliciet privileges toekent voor die tabel, of dat de DBA u de SELECT ANY DICTIONARY geeft. privilege of de SELECT_CATALOG_ROLE rol (met beide kunt u een willekeurige datadictionary-tabel doorzoeken). Natuurlijk wilt u misschien bepaalde schema's uitsluiten, zoals SYS en SYSTEM die grote aantallen Oracle-tabellen hebben waar u waarschijnlijk niets om geeft.

Als alternatief, als u geen toegang heeft tot DBA_TABLES , kunt u alle tabellen zien waartoe uw account toegang heeft via de ALL_TABLES bekijken:

SELECT owner, table_name
  FROM all_tables

Hoewel, dat kan een subset zijn van de tabellen die beschikbaar zijn in de database (ALL_TABLES toont u de informatie voor alle tabellen waartoe uw gebruiker toegang heeft gekregen).

Als u zich alleen bezighoudt met de tabellen waarvan u de eigenaar bent, niet met de tabellen waartoe u toegang heeft, kunt u USER_TABLES gebruiken :

SELECT table_name
  FROM user_tables

Sinds USER_TABLES heeft alleen informatie over de tafels die je bezit, het heeft geen OWNER kolom – de eigenaar ben jij per definitie.

Oracle heeft ook een aantal verouderde weergaven van datadictionary-- TAB , DICT , TABS , en CAT dat zou bijvoorbeeld kunnen worden gebruikt. Over het algemeen raad ik het gebruik van deze verouderde weergaven niet aan, tenzij je je scripts absoluut moet backporten naar Oracle 6. Oracle heeft deze weergaven al heel lang niet gewijzigd, dus ze hebben vaak problemen met nieuwere typen objecten. Bijvoorbeeld de TAB en CAT weergaven tonen beide informatie over tabellen die zich in de prullenbak van de gebruiker bevinden, terwijl de [DBA|ALL|USER]_TABLES weergaven filteren die allemaal eruit. CAT toont ook informatie over gematerialiseerde weergavelogboeken met een TABLE_TYPE van "TABEL", wat waarschijnlijk niet is wat u echt wilt. DICT combineert tabellen en synoniemen en vertelt u niet wie de eigenaar is van het object.



  1. Snel vergelijkbare strings vinden met PostgreSQL

  2. Over de voordelen van gesorteerde paden

  3. Illegale mix van sorteringen MySQL-fout

  4. MySQL dynamische-pivot