while going through some another db2 forum i found following query
WITH result(level, text) AS (
SELECT 1, colname
FROM syscat.columns
WHERE tabname = 'TDB_PATCH_DTL' AND tabschema = 'EONE' AND colno = 0
UNION ALL
SELECT level+1, r.text ||', '|| colname
FROM syscat.columns c, result r
WHERE tabname = 'TDB_PATCH_DTL' AND tabschema = 'EONE' AND c.colno =
r.level
)
SELECT 'SELECT '||text||' FROM '||'EONE.TDB_PATCH_DTL' from result
ORDER BY level DESC
FETCH FIRST 1 ROW ONLY;
or
WITH result(level, tabname, tabschema, text) AS (
SELECT 0, tabname, tabschema, CAST('' AS VARCHAR(4000))
FROM syscat.tables
WHERE tabschema = 'EONE'
and tabname like 'T%'
AND type = 'T'
UNION ALL
SELECT level+1, r.tabname, r.tabschema, r.text ||', '||
RTRIM(colname)
FROM syscat.columns c
, result r
WHERE level < 10000
AND c.tabname = r.tabname
AND c.tabschema = r.tabschema
AND c.colno = r.level
)
SELECT 'SELECT '||SUBSTR(text,3)||' FROM '||RTRIM(r.tabschema)||'.'||RTRIM(r.tabname)||' ;'
FROM result r
, syscat.tables t
WHERE t.tabname = r.tabname
AND t.tabschema = r.tabschema
AND t.colcount = r.level