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 ".
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.
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>
select * from syscat.tables where type = 'T'
vous voudrez peut-être limiter la requête à votre tabschema
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';
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"
avez-vous installé un utilisateur db2inst2, je pense, je me souviens, que db2inst1 est très administratif