2010-05-04 2 views
18

Questo è imbarazzante, ma non riesco a trovare un modo per elencare i nomi delle tabelle nel nostro database DB2. Ecco quello che ho provato:mostra tutte le tabelle in DB2 utilizzando il comando LIST

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

Abbiamo visualizzato questo errore: SQL1092N "ROOT" does not have the authority to perform the requested command or operation.

Il numero di versione di DB2 segue.

[email protected]:~# db2level 
DB21085I Instance "db2inst1" uses "64" bits and DB2 code release "SQL09071" 
with level identifier "08020107". 
Informational tokens are "DB2 v9.7.0.1", "s091114", "IP23034", and Fix Pack 
"1". 
Product is installed at "/opt/db2V9.7".
+1

non dovrebbe essere "db2inst1 @ VO11555" a partire dalla seconda riga? –

risposta

27

per ottenere una lista di tabelle per il database corrente in DB2 ->

connessione al database:

db2 connect to DATABASENAME user USER using PASSWORD 

eseguita questa interrogazione:

db2 LIST TABLES 

Questo è l'equivalente di MOSTRA tabelle in MySQL.

Potrebbe essere necessario eseguire 'set schema myschema' nello schema corretto prima di eseguire il comando list table. Per impostazione predefinita all'accesso, lo schema è uguale al nome utente, che spesso non contiene tabelle. Puoi utilizzare 'values ​​current schema' per verificare lo schema al quale sei attualmente impostato.

+0

Grazie per il comando. Sono nuovo nell'utilizzare l'ambiente IBM DB2 Express-C che ho creato sulla mia macchina virtuale LINUX chiavi in ​​mano. –

+4

Si dovrebbe anche provare a eseguire 'db2 LIST TABLES FOR ALL 'nel caso in cui alcune delle tabelle siano in schemi diversi. –

15
select * from syscat.tables where type = 'T' 

si consiglia di limitare la query per il vostro tabschema

0

È stato installato un db2inst2 utente, penso, mi ricordo, che db2inst1 è molto amministrativo

2

Run questa riga di comando sulla vostra sessione di shell preferita:

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

Forse si desidera modificare il nome del proprietario, e la necessità di controllare l'elenco degli attuali proprietari?

db2 "select distinct owner from syscat.tables" 
18

connessione al database:

db2 connect to <database-name> 

Elenco tutte le tabelle:

db2 list tables for all 

Per elencare tutte le tabelle dello schema selezionato, l'uso:

db2 list tables for schema <schema-name> 

per descrivere un tabella, digitare:

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

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

+0

molto utile, grazie – Dorgham

2

sto usando DB2 7.1 e lo scoiattolo. Questa è l'unica query che ha funzionato per me.

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