2016-09-16 513 views
0

嗨,我試圖找到一個db2表的列數。我有架構名稱和表名詳細信息。 試圖與SQL錯誤:SQLCODE = -204,SQLSTATE = 42704,SQLERRMC = SYSCAT.COLUMNS,DRIVER = 3.54.54

select COUNT(*) from SYSCAT.COLUMNS WHERE TABNAME = 'ABC' and TABSCHEMA='XYZ' 

SELECT COUNT(*) FROM sys.columns WHERE object_id = OBJECT_ID('ABC') 

但不幸的是他們兩人都扔錯誤。

需要建議,我在DB2數據庫中查找列數爲表的問題

+0

我曾在標題 – Mohana

+0

SQL錯誤規定:SQLCODE = -204,SQLSTATE = 42704,則sqlerrmc = SYSCAT.COLUMNS,DRIVER = 3.54 .54 – Mohana

+0

你確定它是db2而不是MSSql。因爲sys.columns是一個MSSQL系統表。你的DB2數據庫鏈接到MSSQL數據庫嗎? – gh9

回答

0

嗨終於我能夠通過修改我的查詢來解決這個問題

select count(*) from sysibm.syscolumns where tbname = 'ABC' and TBCREATOR = 'XYZ'

其中TBCREATOR是模式名稱和tbname是表名。

0

System i上的此代碼的工作(AS400 ...)

select * from qsys2.syscolumns        
where COLUMN_NAME='YOURCOLUMNNAME'       
and TABLE_NAME='YOURTABLENAME' and TABLE_SCHEMA='YOURLIB'