2010-05-04 221 views
18

Esto es embarazoso, pero parece que no puedo encontrar una forma de enumerar los nombres de las tablas en nuestra base de datos DB2. Esto es lo que he intentado:muestra todas las tablas en DB2 utilizando el comando LIST

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

Nos recibe este error: número de versión SQL1092N "ROOT" does not have the authority to perform the requested command or operation.

El DB2 sigue.

[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

¿No debería ser "db2inst1 @ VO11555" comenzando en la línea dos? –

Respuesta

27

Para obtener una lista de tablas de la base de datos actual en DB2 ->

Conectar a la base de datos:

db2 connect to DATABASENAME user USER using PASSWORD 

ejecuta esta consulta:

db2 LIST TABLES 

Esto es el equivalente de SHOW TABLES en MySQL.

Es posible que deba ejecutar 'set schema myschema' en el esquema correcto antes de ejecutar el comando list tables. Por defecto al iniciar sesión, su esquema es el mismo que su nombre de usuario, que a menudo no contendrá ninguna tabla. Puede usar 'values ​​current schema' para verificar en qué esquema está configurado actualmente.

+0

Gracias por el comando. Soy nuevo en el uso del entorno IBM DB2 Express-C que he creado en mi VM Turnkey LINUX. –

+4

También debería intentar ejecutar 'db2 LIST TABLES FOR ALL' en caso de que algunas de las tablas estén en esquemas diferentes. –

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

es posible que desee restringir la consulta a su esquematabla

0

tienen instaló una db2inst2 usuario, creo, recuerdo, que db2inst1 es muy administrativa

2

Ejecutar esta línea de comandos en su sesión de terminal preferido:

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

Quizás desea modificar el nombre del propietario, y la necesidad de revisar la lista de los actuales propietarios?

db2 "select distinct owner from syscat.tables" 
18

Conectar a la base de datos:

db2 connect to <database-name> 

Lista todas las tablas:

db2 list tables for all 

Para listar todas las tablas en el esquema seleccionado, utilice:

db2 list tables for schema <schema-name> 

para describir una tabla, tipo:

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

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

+0

muy útil, gracias – Dorgham

2

estoy usando DB2 7.1 y ardilla. Esta es la única consulta que funcionó para mí.

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