it-swarm.com.de

Wie liste ich alle Tabellen in einem Schema in Oracle SQL auf?

Wie liste ich alle Tabellen in einem Schema in Oracle SQL auf?

132
benstpierre

Um alle Tabellen in einem anderen Schema anzuzeigen, benötigen Sie eine oder mehrere der folgenden Systemberechtigungen:

SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE

oder der große Hammer, die DBA-Rolle.

Mit jeder dieser Optionen können Sie auswählen:

SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM DBA_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

Ohne diese Systemprivilegien können Sie nur Tabellen sehen, auf die Sie Zugriff haben, entweder direkt oder über eine Rolle.

SELECT DISTINCT OWNER, OBJECT_NAME 
  FROM ALL_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
   AND OWNER = '[some other schema]'

Schließlich können Sie das Datenwörterbuch immer für Ihre eigenen Tabellen abfragen, da Ihre Rechte an Ihren Tabellen nicht widerrufen werden können (ab 10g):

SELECT DISTINCT OBJECT_NAME 
  FROM USER_OBJECTS
 WHERE OBJECT_TYPE = 'TABLE'
190
Adam Musch
SELECT table_name  from all_tables where owner = 'YOURSCHEMA';
62
Tom

Sie können USER_TABLES abfragen

select TABLE_NAME from user_tables
12
Sathyajith Bhat

Wenn Sie sich als normaler Benutzer ohne DBA-Berechtigung angemeldet haben, können Sie den folgenden Befehl verwenden, um alle Tabellen und Ansichten Ihres eigenen Schemas anzuzeigen.

select * from tab;
4
chan

Versuchen Sie das, ersetzen Sie? mit Ihrem Schemanamen

select TABLE_NAME from  INFORMATION_SCHEMA.TABLES
 WHERE TABLE_SCHEMA =?
  AND TABLE_TYPE = 'BASE TABLE'
3
SQLMenace
select * from user_tables;

(zeigt alle Tabellen)

2
yash

Wenn Sie mit JDBC (Java) auf Oracle zugreifen, können Sie DatabaseMetadata class verwenden. Wenn Sie mit ADO.NET auf Oracle zugreifen, können Sie einen ähnlichen Ansatz verwenden.

Wenn Sie mit ODBC auf Oracle zugreifen, können Sie die Funktion SQLTables verwenden.

Andernfalls, wenn Sie nur die Informationen in SQLPlus oder einem ähnlichen Oracle-Client benötigen, reicht eine der bereits erwähnten Abfragen. Zum Beispiel:

select TABLE_NAME from user_tables
2

SELECT table_name, owner FROM all_tables, wobei owner = 'schema_name' in der Reihenfolge nach Tabellenname steht

1
Sreeju
select * from cat;

es werden alle Tabellen in Ihrem Schema cat-Synonym von user_catalog angezeigt 

1
Arsalan Sheikh
select TABLE_NAME from user_tables;

Bei der obigen Abfrage erhalten Sie die Namen aller in diesem Benutzer vorhandenen Tabellen.

1
A A Nayak

Schauen Sie sich mein einfaches Dienstprogramm an , um Informationen zum Datenbankschema anzuzeigen. Es basiert auf: Reverse Engineering eines Datenmodells Verwenden des Oracle Data Dictionary

0
Michał Niklas

Wenn Sie auch die Größe des Tisches benötigen, ist dies praktisch:

select SEGMENT_NAME, PARTITION_NAME, BYTES from user_segments where SEGMENT_TYPE='TABLE' order by 1

0
Vijay Kumar

Name der Tabelle und des Zeilenzählers für alle Tabellen im Schema OWNER:

SELECT table_name, num_rows counter from DBA_TABLES WHERE owner = 'OWNER'

0
SergioLeone

Sie können die zweite Abfrage direkt ausführen, wenn Sie den Eigentümernamen kennen.

- Zuerst können Sie auswählen, welche EIGENTÜMER vorhanden sind:

SELECT DISTINCT(owner) from SYS.ALL_TABLES;

- Dann können Sie die Tabellen unter von diesem Eigentümer sehen:

SELECT table_name, owner from all_tables where owner like ('%XYZ%');
0
Kermit the Frog