web-dev-qa-db-fra.com

Description des colonnes dans une table DB2

Comment pouvons-nous connaître la description de chaque colonne d'une table (DB2) via SQL? 

Ma base de données est DB2.

24
deepu
select 
  tabname,
  colname,
  typename,
  length,
  scale,
  default,
  nulls,
  identity,
  generated,
  remarks,
  keyseq 
from 
  syscat.columns 
22
Peter Miehle

- NOTE: la clause where est sensible à la casse et doit être en majuscule

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 méta:

select * from sysibm.tables
where table_schema = 'SYSIBM'
12
tvanharp
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'

Il s’agit de DB2 V5R4 et n’est pas une table système, mais un SYSTEM VIEW. Au cas où vous iriez fou à la recherche de la liste des tables.

11
Rwly

Je travaille sur une boîte iSeries DB2 (v5r4), c’est une variante particulière de DB2.

Si vous êtes sur ou que vous vous connectez à un iSeries (AS/400), le lien mentionné par Anton est excellent (désolé, vous ne pouvez pas encore voter!)

Describe ne fonctionne pas sur un iSeries, mais fonctionnera avec DB2 sur les autres plates-formes.

2
describe table schema.table_name ;

DB2 Describe Command

2
Michael Sharek

SELECT COLNAME, REMARKS FROM SYSCAT.COLUMNS WHERE TABSCHEMA = 'MYSCHEMA' AND TABNAME = 'MYTABLENAME'

2
Erik K.
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' 
2
Arijit

A travaillé pour moi:

select * from sysibm.columns
where table_schema = 'MY_SCHEMA'
0
Fima Taf