mostrar todas as tabelas em DB2 usando o comando LIST

Isto é embaraçoso, mas não consigo encontrar uma forma de listar os nomes das tabelas na nossa base de dados DB2. Eis o que eu tentei:
root@VO11555:~# su - db2inst1
root@VO11555:~# . ~db2inst1/sqllib/db2profile
root@VO11555:~# LIST ACTIVE DATABASES
Recebemos este erro.: SQL1092N "ROOT" does not have the authority to perform the requested command or operation.

segue-se o número da versão DB2.

root@VO11555:~# 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".
 20
Author: Marius Butuc, 2010-05-04

6 answers

Para obter uma lista de tabelas para a base de dados actual em DB2 -- >

Ligue-se à base de dados:

db2 connect to DATABASENAME user USER using PASSWORD

Execute esta pesquisa:

db2 LIST TABLES

Este é o equivalente a mostrar tabelas em MySQL.

Poderá ter de executar o 'set schema myschema' para o esquema correcto antes de executar o comando list tables. Por padrão, após o login seu esquema é o mesmo que o seu nome de usuário-que muitas vezes não irá conter quaisquer tabelas. Você pode usar 'values current schema' para verificar que esquema você é de momento.

 28
Author: Dan, 2012-11-21 21:32:53

Ligue-se à base de dados:

db2 connect to <database-name>

Lista todos os quadros:

db2 list tables for all

Para listar todas as tabelas no esquema seleccionado, use:

db2 list tables for schema <schema-name>

Para descrever uma tabela, tipo:

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

Crédito http://onewebsql.com/blog/list-all-tables

 20
Author: Guagua, 2014-03-20 16:49:09
select * from syscat.tables where type = 'T'

Pode querer restringir a consulta ao seu tabschema

 16
Author: Peter Miehle, 2014-05-05 20:16:16
Estou a usar o db2 7.1 e o esquilo. Esta é a única pergunta que funcionou para mim.
select * from SYSIBM.tables where table_schema = 'my_schema' and table_type = 'BASE TABLE';
 4
Author: PbxMan, 2017-03-14 11:51:47

Execute esta linha de comandos na sua sessão de consola preferida:

db2 "select tabname from syscat.tables where owner = 'DB2INST1'"
Talvez queira modificar o nome do proprietário e verificar a lista dos actuais proprietários?
db2 "select distinct owner from syscat.tables"
 2
Author: user3311636, 2014-02-25 14:39:33

Instalou um utilizador db2inst2, penso, lembro-me, que o db2inst1 é muito Administrativo

 0
Author: Peter Miehle, 2010-05-04 14:15:27