Wird geladen...

Wir haben festgestellt, dass Ihre Browsersprache Chinesisch ist. Möchten Sie unsere chinesische Website besuchen? [ Schließen ]
Von: Emma

Warum Oracle keinen Befehl SHOW TABLES besitzt

Nutzer von MySQL und PostgreSQL greifen aus Gewohnheit oft auf SHOW TABLES; oder \dt zurück. In Oracle existieren beide Befehle nicht; deren Ausführung führt zu einem Fehler.

Oracle nutzt stattdessen ein Datenwörterbuch (Data Dictionary), eine Sammlung schreibgeschützter Systemviews, die Metadaten zu allen Objekten der Datenbank speichern. Abfragen dieser Views sind zwar ausführlicher als ein Einzeilen-Kurzbefehl, aber deutlich leistungsfähiger. Neben bloßen Tabellennamen lassen sich aus derselben Abfrage Speicherdetails, Partitionierungsinformationen, Zeilenanzahlen und das Datum der letzten Statistikauswertung abrufen.

Datenbank Methode zum Auflisten von Tabellen
MySQL SHOW TABLES;
PostgreSQL \dt oder Abfrage von information_schema
Oracle Abfrage von Datenwörterbuch-Views (USER_TABLES, ALL_TABLES, DBA_TABLES)

Das Datenwörterbuch ist in drei Gültigkeitsbereiche gegliedert, die jeweils an unterschiedliche Zugriffsebenen der Datenbank gebunden sind. Welche View Sie abfragen, hängt davon ab, welche Objekte Ihr Benutzerkonto einsehen darf – das wird im folgenden Abschnitt detailliert erläutert.

was bedeutet das Auflisten von Tabellen in Oracle

So listen Sie Tabellen in Oracle-Datenbanken entsprechend Ihrer Zugriffsebene auf

Oracle gliedert seine Datenwörterbuch-Views nach Eigentümerschaft und Berechtigungen in drei Ebenen. Zuerst müssen Sie prüfen, welche Ebene auf Ihr Benutzerkonto zutrifft, bevor Sie eine Abfrage schreiben.

Methode 1: Auflisten der eigenen Tabellen (USER_TABLES)

Nutzen Sie USER_TABLES, wenn Sie nur die Tabellen einsehen möchten, die Sie in Ihrem eigenen Schema erstellt haben. Dies ist die gängigste Ausgangsbasis für Entwickler, die mit ihren eigenen Objekten arbeiten.

SELECT table_name, tablespace_name, num_rows, last_analyzed
FROM user_tables
ORDER BY table_name;

 

Oracle Tabellen auflisten – eigene Tabellen mit USER_TABLES

Die Spalten num_rows und last_analyzed geben Ihnen schnell Aufschluss darüber, ob eine Tabelle Daten enthält und wann der Optimierer zuletzt Statistiken für sie erfasst hat.

Hinweis: USER_TABLES besitzt keine Spalte OWNER. Da diese View ausschließlich Ihre eigenen Tabellen anzeigt, betrachtet Oracle das Eigentümerfeld als überflüssig und lässt es vollständig weg.

Methode 2: Auflisten aller zugänglichen Tabellen (ALL_TABLES)

In Umgebungen mit mehreren Schemas müssen Sie ggf. Tabellen anderer Nutzer einsehen, für die Ihnen Lese- oder Schreibberechtigungen erteilt wurden. ALL_TABLES umfasst alle Tabellen, auf die Ihr Konto Zugriff hat – nicht nur Ihre eigenen.

Zum Filtern nach einem bestimmten Schema fügen Sie eine WHERE-Klausel hinzu:

SELECT owner, table_name, tablespace_name
FROM all_tables
WHERE owner = 'SALES_DEPT'
ORDER BY owner, table_name;

 

Oracle Tabellen auflisten – zugängliche Tabellen mit ALL_TABLES

Ein wichtiger Detailpunkt: Oracle speichert Tabellennamen und Benutzernamen standardmäßig in GROSSBUCHSTABEN. Eine Abfrage mit WHERE owner = 'sales_dept' liefert kein Ergebnis. Verwenden Sie stets Großbuchstaben innerhalb der einfachen Anführungszeichen – es sei denn, das Schema wurde mit gemischter Groß-/Kleinschreibung in doppelten Anführungszeichen erstellt.

Methode 3: Auflisten sämtlicher Tabellen der Datenbank (DBA_TABLES)

DBA_TABLES bietet eine vollständige Übersicht über alle Tabellen in sämtlichen Schemas. Zum Abfragen benötigen Sie entweder die Rolle DBA oder die Berechtigung SELECT ANY DICTIONARY.

Da Oracle zahlreiche interne Systemschemas mitliefert, liefert eine reine Abfrage viele überflüssige Einträge. Schließen Sie diese mit einer Ausschlussliste aus:

SELECT owner, table_name, tablespace_name
FROM dba_tables
WHERE owner NOT IN ('SYS', 'SYSTEM', 'OUTLN', 'DBSNMP', 'APPQOSSYS')
ORDER BY owner, table_name;

 

Oracle Tabellen auflisten – alle Datenbanktabellen mit DBA_TABLES

Bei dem Fehler ORA-00942: Tabelle oder View existiert nicht fehlen Ihrem Konto die erforderlichen Berechtigungen. Bitten Sie Ihren DBA um die Zuweisung der Rolle SELECT_CATALOG_ROLE – dies ist die Standardmethode, um Lesezugriff auf Dictionary-Views zu gewähren, ohne vollständige DBA-Berechtigungen zu erteilen.

6 praktische erweiterte Abfragen zum Auflisten von Oracle-Tabellen

Einfache Standardabfragen liefern nur eine grundlegende Liste. Die folgenden Abfragen gehen weiter: Sie ermöglichen die Suche nach Tabellen anhand von Spaltennamen, Größe oder Teilnamen und helfen Ihnen, das passende Werkzeug für Ihren Anwendungsfall auszuwählen.

Anwendungsfall Zu abfragende View Benötigte Berechtigung
Tabellen anhand eines Spaltennamens suchen ALL_TAB_COLUMNS Standardbenutzer
Zeilenanzahl und Datum der letzten Statistikauswertung prüfen USER_TABLES Standardbenutzer
Tabellen nach Teilnamen durchsuchen USER_TABLES Standardbenutzer
Tabellen nach ihrer Größe auflisten DBA_SEGMENTS DBA-Rolle
Auflisten von Anwendungstabellen ohne Systemschemas DBA_TABLES DBA-Rolle
Visuelle Tabellenübersicht SQL Developer / dbForge Benutzerzugriff

1. Tabellen anhand eines Spaltennamens suchen

Wenn Sie den Namen einer Spalte kennen, aber nicht wissen, in welchen Tabellen sie vorkommt, fragen Sie ALL_TAB_COLUMNS ab. Das ist besonders hilfreich bei komplexen Schemas mit vielen verknüpften Tabellen.

SELECT owner, table_name, column_name
FROM all_tab_columns
WHERE column_name = 'USER_ID'
ORDER BY owner, table_name;

Oracle Tabellen auflisten – Suche nach Spaltenname

2. Zeilenanzahl und Datum der letzten Statistikauswertung prüfen

Der Oracle-Optimierer benötigt Statistiken, um den effizientesten Ausführungsplan zu ermitteln. Wenn num_rows ungenau ist oder last_analyzed mehrere Monate zurückliegt, kann die Abfrageleistung unbemerkt abnehmen – ohne offensichtliche Fehlermeldungen.

SELECT table_name, num_rows, last_analyzed
FROM user_tables
WHERE num_rows > 0
ORDER BY num_rows DESC;

Oracle Tabellen auflisten – Zeilenanzahl und Statistikdatum prüfen

Tipp: Wenn Ihre Statistiken veraltet erscheinen, bitten Sie Ihren DBA, DBMS_STATS.GATHER_TABLE_STATS für die betreffenden Tabellen auszuführen.

3. Tabellen nach Teilnamen durchsuchen

Wenn Sie sich nur an einen Teil des Tabellennamens erinnern, verwenden Sie den Operator LIKE mit dem Platzhalter %. Halten Sie den Suchbegriff in GROSSBUCHSTABEN, um der Oracle-internen Speicherung von Bezeichnern zu entsprechen.

SELECT table_name 
FROM user_tables 
WHERE table_name LIKE '%INVENTORY%';

 

Oracle Tabellen auflisten – Suche nach Teilnamen

4. Tabellen nach Speichergröße auflisten

Tabellendaten werden in Oracle als Segmente gespeichert. Daher müssen Sie DBA_SEGMENTS abfragen, um genaue Größenangaben zu erhalten. Diese Abfrage gibt die Gesamtgröße jeder Tabelle in Megabyte aus, beginnend mit der größten Tabelle.

SELECT segment_name AS table_name, 
       owner, 
       SUM(bytes) / 1024 / 1024 AS size_mb
FROM dba_segments
WHERE segment_type = 'TABLE'
GROUP BY segment_name, owner
ORDER BY size_mb DESC;

 

Oracle Tabellen auflisten – nach Speichergröße sortiert

Dies ist ein praktischer Ausgangspunkt für Speicherprüfungen oder die Ermittlung großer Tabellen vor einer Migration.

5. Auflisten von Anwendungstabellen ohne Oracle-Systemschemas

Eine reine Abfrage von DBA_TABLES enthält auch alle internen Oracle-Systemtabellen, die Sie meist nicht benötigen. Schließen Sie diese aus, um eine übersichtliche Liste Ihrer Anwendungstabellen zu erhalten.

SELECT owner, table_name 
FROM dba_tables 
WHERE owner NOT IN (
    'SYS', 'SYSTEM', 'OUTLN', 'DBSNMP', 
    'APPQOSSYS', 'CTXSYS', 'XDB', 'WMSYS'
)
ORDER BY owner, table_name;

 

Oracle Tabellen auflisten – ohne Systemschemas

6. SQL*Plus im Vergleich zu SQL Developer und grafischen Tools

Das passende Werkzeug hängt von Ihrer Arbeitsweise ab:

  • SQL*Plus / SQLCL: Geeignet für schnelle Prüfungen und Shell-Skripte. Leichtgewichtig, aber die Formatierung der Ausgabe erfordert manuelle Einstellungen mit Befehlen wie SET LINESIZE.
  • SQL Developer: Oracles standardmäßige grafische Oberfläche. Über das Verbindungsfenster links können Sie Tabellen visuell durchsuchen, ohne SQL-Code schreiben zu müssen.
  • dbForge / Toad: Tools von Drittanbietern mit erweiterten Funktionen wie Leistungsanalyse und visuellen ER-Diagrammen.

Häufige Fehler & Fehlerbehebung

Auch erfahrene DBAs stoßen bei Abfragen des Oracle-Datenwörterbuchs auf Zugriffsprobleme oder leere Ergebnislisten. Hier die vier häufigsten Probleme und deren Lösungen.

1. ORA-00942: Tabelle oder View existiert nicht

  • Ursache: Sie versuchen, DBA_TABLES abzufragen, ohne über die erforderlichen Administratorberechtigungen zu verfügen. Oracle verbirgt diese Views vollständig vor unbefugten Benutzern, sodass der Fehler identisch zu dem Fall ist, dass eine Tabelle tatsächlich nicht existiert.
  • Lösung: Wechseln Sie je nach Bedarf zu USER_TABLES oder ALL_TABLES. Wenn Sie unbedingt Zugriff auf DBA_TABLES benötigen, bitten Sie Ihren Administrator um die Zuweisung der Rolle SELECT_CATALOG_ROLE oder der Berechtigung SELECT ANY DICTIONARY.

2. Leere Ergebnisliste bei USER_TABLES

  • Ursache: Der aktuelle Benutzer besitzt keine eigenen Tabellen. Das tritt häufig bei neu erstellten Konten oder reinen Verbindungsbenutzern auf, die nur Berechtigungen, aber keine eigenen Objekte besitzen.
  • Lösung: Fragen Sie stattdessen ALL_TABLES ab, um alle Objekte einzusehen, für die Ihr Konto zugelassen ist. Wenn Sie Tabellen eines anderen Schemas einsehen müssen, prüfen Sie, ob der Schema-Eigentümer Ihrem Benutzer die SELECT-Berechtigung für diese Objekte erteilt hat.

3. Tabellennamen mit gemischter Groß-/Kleinschreibung und Anführungszeichen-Bezeichner

  • Ursache: Oracle speichert alle Bezeichner standardmäßig in Großbuchstaben. Wenn eine Tabelle mit doppelten Anführungszeichen erstellt wurde, z. B. CREATE TABLE "Sales_Data", behält Oracle die genaue Schreibweise bei. Eine Standardabfrage mit 'SALES_DATA' liefert keine Treffer.
  • Lösung: Prüfen Sie die Spalte TABLE_NAME in Ihrer Datenwörterbuch-Abfrage. Wenn Sie Kleinbuchstaben erkennen, müssen Sie bei allen nachfolgenden Anweisungen zur Referenzierung dieser Tabelle doppelte Anführungszeichen verwenden: SELECT * FROM "Sales_Data";

4. Keine Zeilen bei der Abfrage von DBA_TABLES

  • Ursache: Bei Multitenant-Architekturen (Oracle 12c und neuer) sind Sie ggf. mit dem Container-Datenbank-Root verbunden, statt mit der Pluggable-Datenbank (PDB), in der Ihre Anwendungstabellen gespeichert sind.
  • Lösung: Überprüfen Sie Ihre Verbindungszeichenfolge und bestätigen Sie, mit welcher Datenbank Sie verbunden sind. Wechseln Sie ggf. zur korrekten PDB mit dem Befehl ALTER SESSION SET CONTAINER = pdb_name;, bevor Sie Ihre Abfrage ausführen.

Über das bloße Auflisten von Tabellen hinaus: Oracle-Replikation mit i2Stream

Sobald Sie einen klaren Überblick über Ihre Tabellenstruktur haben, stellt sich als nächste Frage, wie diese Daten über Systeme hinweg geschützt und synchron gehalten werden können. Für Teams mit produktivem Oracle-Betrieb bedeutet dies eine zuverlässige Replikationsebene, die hohe Transaktionsvolumina, Schemaänderungen und plattformübergreifende Umgebungen verarbeiten kann, ohne laufende Betriebsabläufe zu stören.

i2Stream ist eine unternehmensgerechte Datenbankreplikationslösung, die exakt für diese Szenarien entwickelt wurde. Statt eine einheitliche Standardreplikation anzubieten, geht sie direkt auf die praktischen Herausforderungen von Oracle-Umgebungen ein.

Kernfunktionen von i2Stream

  • Echtzeit-Datensynchronisation mit nahezu keiner Latenz: i2Stream erfasst Änderungen durch Log-Auswertung statt regelmäßiger Abfragen und erreicht eine Synchronisation im Millisekundenbereich – auch bei hoher Parallelität. Bei Oracle-Umgebungen mit hohem Schreibaufkommen hält die Replikation somit Schritt mit dem Produktivbetrieb, ohne Verzögerungen zu verursachen.
  • Vollständige DDL- und DML-Unterstützung: Schemaänderungen, Tabellenmodifikationen und Datenoperationen werden gemeinsam erfasst und repliziert. Sie müssen die Replikation nicht pausieren oder eine manuelle Neu-Synchronisation nach Schema-Updates durchführen.
  • Transaktionskonsistenz: i2Stream stellt sicher, dass Transaktionen in der korrekten Reihenfolge auf das Zielsystem angewendet werden. Es enthält integrierte Konfliktlösung für Einfüge-, Aktualisierungs- und Löschvorgänge. Die Datenintegrität bleibt auch bei komplexen Workloads mit hoher Parallelität erhalten.
  • Agentenlose Architektur: Es wird keine Software auf dem produktiven Datenbankserver installiert. Dadurch entsteht keine Leistungsbeeinträchtigung Ihrer Oracle-Instanz und kein zusätzlicher Wartungsaufwand auf der Quellseite.
  • Flexible Replikationstopologien: i2Stream unterstützt Eins-zu-Eins-, Eins-zu-Viele-, Viele-zu-Eins- und kaskadierte Synchronisationskonfigurationen. Egal, ob Sie Filialdaten in einem zentralen Data Warehouse konsolidieren oder Datensätze auf mehrere Ziele verteilen – die Topologie lässt sich an Ihre Architektur anpassen.
  • Breite Datenbankkompatibilität: Neben Oracle unterstützt i2Stream SQL Server, MySQL, PostgreSQL, DB2 und über 40 weitere Datenbanksysteme – einschließlich Big-Data-Plattformen wie Kafka, Hive und HDFS. Das macht es zu einer praktischen Lösung für Teams mit heterogenen Umgebungen.

Für Teams, die über die reine Replikation hinaus eine umfassende Datenresilienz benötigen, bietet die Produktpalette von Info2Soft die passenden Ergänzungen. i2Backup übernimmt die zentrale Sicherung physischer, virtueller und Cloud-Umgebungen, während i2Migration unterbrechungsfreie plattformübergreifende Migrationen für Oracle und weitere Systeme unterstützt.

60-tägige kostenlose Testversion

Häufig gestellte Fragen (FAQ)

F1: Kann ich Tabellen in Oracle ohne DBA-Berechtigungen auflisten?

Ja. USER_TABLES und ALL_TABLES sind für Standardbenutzer ohne spezielle Rechte zugänglich. USER_TABLES zeigt Ihre eigenen Tabellen an, ALL_TABLES alle Tabellen, für die Ihnen Zugriff gewährt wurde. Erhöhte Berechtigungen benötigen Sie nur bei der Abfrage von DBA_TABLES.

F2: Warum liefert USER_TABLES kein Ergebnis?

Meist besitzt der aktuelle Benutzer keine eigenen Tabellen. Wenn Sie ein dediziertes Verbindungsbenutzerkonto oder ein neu erstelltes Konto verwenden, fragen Sie stattdessen ALL_TABLES ab, um alle Objekte einzusehen, auf die Ihr Konto Zugriff hat.

F3: Was ist der Unterschied zwischen USER_TABLES, ALL_TABLES und DBA_TABLES?

USER_TABLES zeigt nur Ihre eigenen Tabellen an. ALL_TABLES umfasst diese sowie alle Tabellen anderer Benutzer, für die Ihnen Zugriff erteilt wurde. DBA_TABLES listet sämtliche Tabellen der gesamten Datenbank auf – die Abfrage erfordert jedoch Administratorberechtigungen.

F4: Wie liste ich Tabellen nach ihrer Größe in Oracle auf?

Fragen Sie DBA_SEGMENTS ab, filtern Sie nach segment_type = ‚TABLE‘ und summieren Sie die Bytes pro Segment. Hierfür benötigen Sie DBA-Berechtigungen. Die vollständige Syntax finden Sie im Abschnitt mit den erweiterten Abfragen weiter oben.

Fazit

Das Auflisten von Tabellen in Oracle hängt allein davon ab, welche View des Datenwörterbuchs zu Ihrer Zugriffsebene passt. Nutzen Sie USER_TABLES für Ihr eigenes Schema, ALL_TABLES, wenn Sie Tabellen aus anderen zugänglichen Schemas einsehen möchten, und DBA_TABLES für eine vollständige datenbankweite Übersicht – vorausgesetzt, Sie verfügen über die erforderlichen Berechtigungen.

Die erweiterten Abfragen dieses Leitfadens ermöglichen weitergehende Auswertungen: die Suche nach Tabellen anhand von Spaltennamen, die Prüfung von Statistiken, die Filterung nach Speichergröße oder die Eingrenzung von Ergebnissen per Teilnamen. Die meisten Zugriffsprobleme lassen sich auf fehlende Berechtigungen oder Probleme mit der Groß-/Kleinschreibung zurückführen – beide lassen sich unkompliziert beheben, wenn Sie die Ursache kennen.

Wenn Ihre Arbeit über das Abfragen von Tabellenstrukturen hinausgeht und Sie Daten über Systeme hinweg synchron halten möchten, lohnt sich ein Blick auf i2Stream von Info2soft. Es realisiert Echtzeit-Oracle-Replikation auf Transaktionsebene, unterstützt Schemaänderungen ohne manuelle Eingriffe und funktioniert in heterogenen Datenbankumgebungen, ohne Ihren Produktivserver zu beeinträchtigen.

Keine Kurzbiografie vorhanden

Weitere verwandte Artikel

[3 Methoden] So stellen Sie eine Verbindung zur Oracle-Datenbank her
Die Verbindung zu einer Oracle-Datenbank kann je nach verwendeten Tools und Umgebungen unterschiedlich ausfallen. Dieser Leitfaden stellt drei gängige Verbindungsmethoden vor und erläutert die Fehlerbehebung typischer Verbindungsfehler bei Oracle-Datenbanken.
Weiterlesen
Schritt-für-Schritt-Anleitung zur Konfiguration von Oracle Data Guard
Die Einrichtung von Oracle Data Guard kann komplex sein, insbesondere bei der Verwaltung von Standby-Datenbanken, dem Versand von Redo-Logs und der Wiederherstellungskonfiguration. Diese Anleitung unterteilt den Vorgang in übersichtliche Schritte und hilft Ihnen dabei, eine zuverlässige Hochverfügbarkeitsumgebung mit weniger Fehlern und Unklarheiten aufzubauen.
Weiterlesen
Was sind SQL-Datenbankconstraints: Ein vollständiger Leitfaden [2026]
SQL-Constraints bilden die Grundlage zuverlässiger und korrekter Datenbanken. Sie verhindern ungültige Daten, bevor diese Probleme verursachen. Dieser Leitfaden erläutert alle gängigen SQL-Constraint-Typen mit praxisnahen Beispielen, plattformspezifischen Unterschieden und Best Practices zur Wahrung der Datenintegrität im Jahr 2026.
Weiterlesen
Block-Level-Backup erklärt: Was es ist, Vorteile und weitere Details
Das Block-Level-Backup verbessert Sicherungsgeschwindigkeit und Speichereffizienz, indem nur geänderte Datenblöcke statt vollständiger Dateien gesichert werden. Diese Anleitung erläutert die Funktionsweise des Block-Level-Backups, stellt es dem Datei-Level-Backup gegenüber und beleuchtet seine Rolle bei modernen Unternehmenssicherungen und der Notfallwiederherstellung.
Weiterlesen
Bereit, Ihre Unternehmensdatensicherheit zu verbessern?

· Unternehmenskunden und Mittelstand weltweit

· Unser Support-Team unterstützt Sie während der gesamten Testphase

· Starten Sie eine 60-tägige Testversion oder sehen Sie sich eine Demo an, um zu erfahren, wie Info2Soft Unternehmensdaten schützt.

Bitte füllen Sie das Formular aus und senden Sie es ab – unser Kundenservice wird sich in Kürze bei Ihnen melden.
Mit dem Absenden dieses Formulars bestätige ich, dass ich die Datenschutzerklärung gelesen habe und zustimme.
{{ isSubmitting ? 'Wird gesendet...' : 'Absenden' }}