web-dev-qa-db-de.com

alle Tabellen in DB2 mit dem Befehl LIST anzeigen

Das ist peinlich, aber ich finde keine Möglichkeit, die Namen der Tabellen in unserer DB2-Datenbank aufzulisten. Folgendes habe ich ausprobiert:

[email protected]:~# su - db2inst1
[email protected]:~# . ~db2inst1/sqllib/db2profile
[email protected]:~# LIST ACTIVE DATABASES

Wir erhalten diese Fehlermeldung: SQL1092N "ROOT" does not have the authority to perform the requested command or operation.

Die DB2-Versionsnummer folgt.

root @ VO11555: ~ # db2level 
 DB21085I Die Instanz "db2inst1" verwendet "64" -Bits und den DB2-Code-Release "SQL09071" 
 mit dem Ebenenbezeichner "08020107" ..__ "," s091114 "," IP23034 "und Fixpack 
" 1 ".
 Das Produkt wird unter" /opt/db2V9.7 "installiert.
20
Lightbeard

Um eine Liste der Tabellen für die aktuelle Datenbank in DB2 abzurufen ->

Verbindung zur Datenbank herstellen:

db2 connect to DATABASENAME user USER using PASSWORD

Führen Sie diese Abfrage aus:

db2 LIST TABLES

Dies ist das Äquivalent von SHOW TABLES in MySQL.

Möglicherweise müssen Sie 'set schema myschema' für das richtige Schema ausführen, bevor Sie den Befehl list tables ausführen. Standardmäßig entspricht Ihr Schema bei der Anmeldung Ihrem Benutzernamen, der häufig keine Tabellen enthält. Sie können das aktuelle Werte-Schema verwenden, um zu überprüfen, auf welches Schema Sie aktuell eingestellt sind.

29
Dan

Verbindung zur Datenbank herstellen:

db2 connect to <database-name>

Alle Tabellen auflisten:

db2 list tables for all

Um alle Tabellen im ausgewählten Schema aufzulisten, verwenden Sie:

db2 list tables for schema <schema-name>

Um eine Tabelle zu beschreiben, geben Sie Folgendes ein:

db2 describe table <table-schema.table-name>

credit http://onewebsql.com/blog/list-all-tables

20
Guagua
select * from syscat.tables where type = 'T'

sie können die Abfrage auf Ihr Tabschema beschränken

17
Peter Miehle

Ich verwende db2 7.1 und SQuirrel. Dies ist die einzige Abfrage, die für mich funktioniert hat. 

select * from SYSIBM.tables where table_schema = 'my_schema' and table_type = 'BASE TABLE';
5
PbxMan

Führen Sie diese Befehlszeile in Ihrer bevorzugten Shell-Sitzung aus:

db2 "select tabname from syscat.tables where owner = 'DB2INST1'"

Möglicherweise möchten Sie den Besitzernamen ändern und die Liste der aktuellen Eigentümer überprüfen.

db2 "select distinct owner from syscat.tables"
2
user3311636

haben Sie einen Benutzer db2inst2 installiert, denke ich, ich erinnere mich, dass db2inst1 sehr administrativ ist

0
Peter Miehle