在JDBC中未設置元數據,如果結果集爲空,所以我無法執行getColumnNames()。Apache Derby:檢索空表的列名稱
我試着查詢德比SYSTABLES:
的SYS.SYSTABLES
表包含REFERENCEID
,COLUMNAME
,COLUMNUMBER
...
COLUMNAME
就是我尋找的。但我認爲沒有可能與SYS.SYSTABLES或任何其他表一起加入此表。
在JDBC中未設置元數據,如果結果集爲空,所以我無法執行getColumnNames()。Apache Derby:檢索空表的列名稱
我試着查詢德比SYSTABLES:
的SYS.SYSTABLES
表包含REFERENCEID
,COLUMNAME
,COLUMNUMBER
...
COLUMNAME
就是我尋找的。但我認爲沒有可能與SYS.SYSTABLES或任何其他表一起加入此表。
你可以加入SYSTABLES和syscolumns中與TABLEID = REFERENCEID
select TABLENAME,COLUMNNAME, t.*
FROM sys.systables t, sys.syscolumns
WHERE TABLEID = REFERENCEID and tablename = 'SYSCOLUMNS'
TABLENAME COLUMNNAME REFERENCEID COLUMNNAME COLUMNNUMBER COLUMNDATATYPE COLUMNDEFAULT COLUMNDEFAULTID AUTOINCREMENTVALUE AUTOINCREMENTSTART AUTOINCREMENTINC
---------- ------------------ ------------------------------------ ------------------ ------------ ------------------------------------------------ ------------- --------------- ------------------ ------------------ ----------------
SYSCOLUMNS AUTOINCREMENTINC 8000001e-00d0-fd77-3ed8-000a0a0b1900 AUTOINCREMENTINC 9 BIGINT NULL NULL NULL NULL NULL
SYSCOLUMNS AUTOINCREMENTSTART 8000001e-00d0-fd77-3ed8-000a0a0b1900 AUTOINCREMENTSTART 8 BIGINT NULL NULL NULL NULL NULL
SYSCOLUMNS AUTOINCREMENTVALUE 8000001e-00d0-fd77-3ed8-000a0a0b1900 AUTOINCREMENTVALUE 7 BIGINT NULL NULL NULL NULL NULL
SYSCOLUMNS COLUMNDATATYPE 8000001e-00d0-fd77-3ed8-000a0a0b1900 COLUMNDATATYPE 4 org.apache.derby.catalog.TypeDescriptor NOT NULL NULL NULL NULL NULL NULL
SYSCOLUMNS COLUMNDEFAULT 8000001e-00d0-fd77-3ed8-000a0a0b1900 COLUMNDEFAULT 5 java.io.Serializable NULL NULL NULL NULL NULL
SYSCOLUMNS COLUMNDEFAULTID 8000001e-00d0-fd77-3ed8-000a0a0b1900 COLUMNDEFAULTID 6 CHAR(36) NULL NULL NULL NULL NULL
SYSCOLUMNS COLUMNNAME 8000001e-00d0-fd77-3ed8-000a0a0b1900 COLUMNNAME 2 VARCHAR(128) NOT NULL NULL NULL NULL NULL NULL
SYSCOLUMNS COLUMNNUMBER 8000001e-00d0-fd77-3ed8-000a0a0b1900 COLUMNNUMBER 3 INTEGER NOT NULL NULL NULL NULL NULL NULL
SYSCOLUMNS REFERENCEID 8000001e-00d0-fd77-3ed8-000a0a0b1900 REFERENCEID 1 CHAR(36) NOT NULL NULL NULL NULL NULL NULL
非常好。這是工作 – Ginkgochris 2011-12-15 14:15:58
你確定如果結果集是空的ResultSetMetaData沒有設置?我很確定ResultSetMetaData是大多數工具獲取列信息的方式,所以我很驚訝地聽到這些信息。 – 2011-12-15 15:07:14