29

How can we know the description of every column in a table(DB2) through SQL?

My data base is DB2.

BenMorel
  • 34,448
  • 50
  • 182
  • 322

8 Answers8

23
select 
  tabname,
  colname,
  typename,
  length,
  scale,
  default,
  nulls,
  identity,
  generated,
  remarks,
  keyseq 
from 
  syscat.columns 
edi9999
  • 19,701
  • 13
  • 88
  • 127
Peter Miehle
  • 5,984
  • 2
  • 38
  • 55
20
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'

This is on DB2 V5R4, and is not a System Table but a SYSTEM VIEW. In case that you go nuts looking for it on the tables list.

Max
  • 4,067
  • 1
  • 18
  • 29
Rwly
  • 209
  • 2
  • 3
12

-- NOTE: the where clause is case sensitive and needs to be uppercase

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

-- to get a list of all the meta tables:

select * from sysibm.tables
where table_schema = 'SYSIBM'
tvanharp
  • 325
  • 3
  • 11
4

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

Erik K.
  • 1,024
  • 12
  • 13
2
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' 
Arijit
  • 1,633
  • 2
  • 21
  • 35
2
describe table schema.table_name ;

DB2 Describe Command

DJo
  • 2,133
  • 4
  • 30
  • 46
Michael Sharek
  • 5,043
  • 2
  • 30
  • 33
2

I work on an iSeries DB2 box (v5r4), it is a special flavor of DB2.

If you're on or connecting to an iSeries (AS/400), the link mentioned by Anton is most excellent (sorry, can't vote yet!)

Describe does not work on an iSeries, but will work with DB2 on the other platforms.

  • 1
    V6R1 is out! If you have access to the data provider DLL, it now implements ADO.NET 2.0 (DbProviderFactory, etc). It's backwards compatible with V5R4. – Anthony Mastrean Feb 27 '09 at 14:37
0

Worked for me:

select * from sysibm.columns
where table_schema = 'MY_SCHEMA'
Fima Taf
  • 929
  • 9
  • 22