Comment connaître la description de chaque colonne d'une table (DB2) via SQL?Description des colonnes d'une table DB2
Ma base de données est DB2.
Comment connaître la description de chaque colonne d'une table (DB2) via SQL?Description des colonnes d'une table DB2
Ma base de données est DB2.
select
tabname,
colname,
typename,
length,
scale,
default,
nulls,
identity,
generated,
remarks,
keyseq
from
syscat.columns
describe table schema.table_name ;
Je travaille sur une boîte de DB2 iSeries (V5R4 de), il est une saveur particulière de DB2.
Si vous êtes ou connecte à un iSeries (AS/400), le lien mentionné par Anton est excellent (désolé, ne peut pas voter encore!)
Décrire ne fonctionne pas sur un iSeries, mais travaillera avec DB2 sur les autres plates-formes.
SELECT COLNAME, REMARKS FROM SYSCAT.COLUMNS WHERE TABSCHEMA = 'MYSCHEMA' AND TABNAME = 'MYTABLENAME'
- REMARQUE: la clause where est sensible à la casse et doit être en majuscules
select
t.table_schema as Library
,t.table_name
,t.table_type
,c.column_name
,c.ordinal_position
,c.data_type
,c.character_maximum_length as Length
,c.numeric_precision as Precision
,c.numeric_scale as Scale
,c.column_default
,t.is_insertable_into
from sysibm.tables t
join sysibm.columns c
on t.table_schema = c.table_schema
and t.table_name = c.table_name
where t.table_schema = 'MYLIB'
and t.table_name = 'MYTABLE'
order by t.table_name, c.ordinal_position
- pour obtenir une liste de toutes les tables de méta:
select * from sysibm.tables
where table_schema = 'SYSIBM'
select T1.name,T1.creator from sysibm.systables T1,sysibm.syscolumns
T2 where T1.name=T2.tbname and T1.creator=T2.tbccreator and
T1.creator='CREATOR NAME' and T2.name='COLUMN NAME'
SELECT
TABLE_CAT,
TABLE_SCHEM,
TABLE_NAME,
COLUMN_NAME,
DATA_TYPE,
TYPE_NAME,
COLUMN_SIZE,
COLUMN_TEXT
FROM "SYSIBM"."SQLCOLUMNS"
WHERE TABLE_SCHEM = 'SCHEMA'
AND TABLE_NAME = 'TABLE'
Ceci est activé DB2 V5R4 et n'est pas une table système mais un SYSTEM VIEW
. Dans le cas où vous devenez fou à la recherche sur la liste des tables.
a marché pour moi:
select * from sysibm.columns
where table_schema = 'MY_SCHEMA'
V6R1 est sorti! Si vous avez accès à la DLL du fournisseur de données, elle implémente maintenant ADO.NET 2.0 (DbProviderFactory, etc). Il est rétrocompatible avec V5R4. –