web-dev-qa-db-fra.com

Comment afficher la structure de la table DB2

Comment afficher la structure de la table dans la base de données DB2

41
Ambat bhath

J'ai eu la réponse du sysibm.syscolumns

Select distinct(name), ColType, Length from Sysibm.syscolumns where tbname = 'employee';
53
Ambat bhath

Généralement, il est plus facile d’utiliser DESCRIBE.

DESCRIBE TABLE MYSCHEMA.TABLE

ou

DESCRIBE INDEXES FOR MYSCHEMA.TABLE SHOW DETAIL

etc.

Voir la documentation: commande DESCRIBE

22
Ian Bjorhovde

La commande suivante fonctionne également:

describe SELECT * FROM table_name;

L'instruction select peut être remplacée par une autre instruction select, ce qui est très utile pour les insertions complexes avec select, par exemple.

4
Boris

Dans DB2, entrez la commande db2 Invite.

  db2  =>  describe  table MyTableName
4
binhn

POUR DESCRIPTION DE LA TABLE DANS LA VERSION IBM DB2 10.7, j’ai essayé

SELECT NAME,COLTYPE,NULLS,LONGLENGTH FROM SYSIBM.SYSCOLUMNS where TBcreator =SCHEMANAME and TBNAME =TABLENAME;
4
Vinit

1.utiliser db2 décrire la table

  db2 describe table tabschema.tabname

2.utiliser db2 décrire la sortie

  db2 "describe select * from tabschema.tabname"

3. Utilise l'utilitaire db2look

  db2look -d dbname -e -t tabname

4. Trouver des lignes dans db2 syscat

  db2 "Select * from syscat.columns wher tabname='' and tabschema =''"
3
Andrew

Comment afficher la structure de la table dans la base de données db2

Ouvrir db2 fenêtre de commande, connectez-vous à db2 avec la commande suivante.

> db2 connect to DATABASE_NAME USER USERNAME USING PASSWORD

Une fois la connexion établie, lancez la commande suivante pour afficher la structure de la table.

> db2 "describe select * from SCHEMA_NAME.TABLE_NAME"

La commande ci-dessus affiche la structure de la table db2 au format tabulaire.

Remarque: testé sur le client DB2 9.7.11

3
fabfas

Vous pouvez obtenir les métadonnées de la table en utilisant cette requête

SELECT * FROM SYSIBM.COLUMNS WHERE TABLE_NAME = 'ASTPCLTEXT';
2
R K

exemple php pour iSeries (as400) db2, oui cela a fonctionné!

$i5 = db2_connect($database, $user, $password, array("i5_lib"=>"qsys2"));

$querydesc = "select * from qsys2.syscolumns where table_schema = '".$library."' and table_name = '".$table_name."' ";

$result = db2_exec($i5, $querydesc);

aussi si vous voulez juste lister toutes les tables avec leurs descriptions

$query = "select TABLE_NAME, TABLE_TEXT from systables where table_schema = '$library' ";

$result = db2_exec($i5, $query);
2
captainhero70

Utilisez ce qui suit pour vérifier la description de la table pour une seule table

DESCRIBE TABLE Schema Name.Table Name

joignez les tables ci-dessous pour vérifier la description de la table pour plusieurs tables, joignez-vous à l'ID de table syscat.tables et syscat.columns

Vous pouvez également vérifier les détails des index de la table à l’aide de la commande ci-dessous, décrire les index de la table. Montrer les détails

1
Dhanish Jose

Control Center a déjà la fonctionnalité de cela. C'est juste en dessous de la liste du tableau.

enter image description here

1
zawhtut

si vous utilisez Aqua Data studio, écrivez simplement select * dans nom_table et au lieu d'appuyer sur exécuter, appuyez sur ctrl + D.

Vous pourrez voir la description de la table

1
Shubhangi Tandon

pour obtenir toutes les tables: (vous souhaiterez peut-être restreindre le schéma à votre schéma)

select * from syscat.tables

pour obtenir toutes les colonnes: (où nom_table = votre nom_tab)

select * from syscat.columns
1
Peter Miehle

J'utilise DB2/LINUXX8664 10.5.3 et describe select * from schema_name.table_name travaille pour moi.

Toutefois, describe table schema_name.table_name échoue avec cette erreur:

SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table. SQLSTATE=02000

0
richardsun

Comme beaucoup d’entre eux l’ont déjà mentionné, le moyen le plus simple est de faire un TABLEAU DESCRIER.

Cependant, vous pouvez aussi obtenir les mêmes informations supplémentaires à partir de

db2> SELECT * SYSCAT.TABLES

db2> SELECT * FROM SYSCAT.COLUMNS

J'utilise généralement SYSCAT.COLUMNS pour rechercher les tables associées dans la base de données où je connais déjà le nom de la colonne :)

Si vous souhaitez obtenir le DDL d’une table ou de l’ensemble de la base de données, utilisez db2look.

# db2look -d *dbname* -t *tablename* > tablestructure.out

Cela générera le fichier ".out" qui contiendra le script DDL de la table en question.

# db2look -d *dbname* -e > dbstructure.out

Cela générera la DDL de la base de données entière en tant que fichier de script unique. Il est généralement utilisé pour répliquer la base de données. "-E" indique que l'utilisateur souhaite exporter une DDL de manière à recréer exactement la même configuration dans une nouvelle base de données.

J'espère que cela pourra aider quelqu'un à la recherche de telles réponses :)

0
Faisal
drop view lawmod9t.vdesc

create view lawmod9t.vDesc as select 
       upper(t.table_cat) as Catalog, 
       upper(t.table_schem) as Schema, 
       upper(t.table_name) as table, 
       t.table_text as tableDesc, 
       c.system_column_name as colname_short, 
       c.column_name as colname_long, 
       c.column_text as coldesc, 
       c.Type_Name as type, 
       c.column_Size as size
from sysibm.SQLColumns c
inner join sysibm.sqltables t
on c.table_schem = t.table_schem
and c.table_name = t.table_name

select * from vdesc where table = 'YPPPOPL'
0
D. Kermott

L'OP ne mentionne pas s'il s'agit de DB2/400, mais j'ai découvert que la seule manière d'obtenir la structure de la table, y compris les descriptions de noms de colonnes, était d'utiliser DSPFFD.

DSPFFD FILE(TBNAME) OUTPUT(*OUTFILE) OUTFILE(SOMELIB/TBDESC)

Ceci place la description de TBNAME dans une table appelée TBDESC dans la bibliothèque SOMELIB. Vous pouvez alors interroger cela avec:

select * from SOMELIB/TBDESC

0
KC Baltz

J'utilise Aquadata Studio 12.0.23, plusieurs versions plus récentes. Donc, votre expérience peut être meilleure que la mienne. J'ai trouvé que le meilleur moyen d'obtenir une vue d'ensemble consistait à utiliser le générateur ERD. Cela a pris quelques heures, car la normalisation n'était pas un concept utilisé dans la conception de cette base de données il y a presque 30 ans. J'ai pu obtenir des définitions pour tous les objets en quelques heures, avec un fichier pour chacun.

0
Joseph Morgan