web-dev-qa-db-fra.com

afficher toutes les tables dans DB2 à l'aide de la commande LIST

C'est embarrassant, mais je n'arrive pas à trouver un moyen de répertorier les noms des tables dans notre base de données DB2. Voici ce que j'ai essayé:

root@VO11555:~# su - db2inst1
root@VO11555:~# . ~db2inst1/sqllib/db2profile
root@VO11555:~# LIST ACTIVE DATABASES

Nous recevons cette erreur: SQL1092N "ROOT" does not have the authority to perform the requested command or operation.

Le numéro de version de DB2 suit.

root @ VO11555: ~ # db2level 
 DB21085I L'instance "db2inst1" utilise "64" bits et la version de code DB2 "SQL09071" 
 avec l'identificateur de niveau "08020107" .
 Les jetons d'informations sont "DB2" "," s091114 "," IP23034 "et groupe de correctifs 
" 1 ".
 Le produit est installé à" /opt/db2V9.7 ".
20
Lightbeard

Pour obtenir une liste des tables de la base de données actuelle dans DB2 ->

Connectez-vous à la base de données:

db2 connect to DATABASENAME user USER using PASSWORD

Exécutez cette requête:

db2 LIST TABLES

C'est l'équivalent de SHOW TABLES dans MySQL.

Vous devrez peut-être exécuter 'set schema myschema' sur le schéma correct avant d'exécuter la commande list tables. Par défaut, lors de la connexion, votre schéma est identique à votre nom d'utilisateur - qui ne contient souvent aucune table. Vous pouvez utiliser 'valeurs schéma actuel' pour vérifier quel schéma vous êtes actuellement défini.

29
Dan

Connectez-vous à la base de données:

db2 connect to <database-name>

Lister toutes les tables:

db2 list tables for all

Pour lister toutes les tables du schéma sélectionné, utilisez:

db2 list tables for schema <schema-name>

Pour décrire une table, tapez:

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

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

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

vous voudrez peut-être limiter la requête à votre tabschema

17
Peter Miehle

J'utilise db2 7.1 et SQuirrel. C'est la seule requête qui a fonctionné pour moi. 

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

Exécutez cette ligne de commande sur votre session Shell préférée:

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

Vous souhaitez peut-être modifier le nom du propriétaire et vérifier la liste des propriétaires actuels?

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

avez-vous installé un utilisateur db2inst2, je pense, je me souviens, que db2inst1 est très administratif

0
Peter Miehle