2009-02-24 20 views

Odpowiedz

19
select 
    tabname, 
    colname, 
    typename, 
    length, 
    scale, 
    default, 
    nulls, 
    identity, 
    generated, 
    remarks, 
    keyseq 
from 
    syscat.columns 
2

pracuję na polu DB2 iSeries (v5r4), jest to specjalny smak DB2.

Jeśli jesteś lub podłączania do iSeries (AS/400), link wspomniane przez Anton jest najbardziej doskonałe (przepraszam, nie może głosować jeszcze!)

opisać nie działa na iSeries ale będzie działać z DB2 na innych platformach.

+1

V6R1 jest! Jeśli masz dostęp do biblioteki DLL dostawcy danych, implementuje ona teraz ADO.NET 2.0 (DbProviderFactory itp.). Jest kompatybilny wstecz z V5R4. –

2

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

11

- UWAGA: w przypadku gdy klauzula jest wielkość liter i musi być duża

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 

- aby uzyskać listę wszystkich meta tabelach:

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

To jest na DB2 V5R4 i nie jest tabelą systemową, lecz SYSTEM VIEW. W przypadku, gdy zwariowałeś, szukając go na liście stolików.

0

pracował dla mnie:

select * from sysibm.columns 
where table_schema = 'MY_SCHEMA'