本文介绍了Apache Derby:检索空表的列名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
未设置JDBC元数据,如果结果集为空,则无法执行getColumnNames()。
In JDBC metadata is not set, if the result set is empty, so I cannot execute getColumnNames().
我尝试查询derby systables:
I tried querying the derby systables:
SYS.SYSTABLES
表包含 REFERENCEID
, COLUMNAME
, COLUMNUMBER
,...
The SYS.SYSTABLES
table contains REFERENCEID
, COLUMNAME
, COLUMNUMBER
, ...
我要搜索的是COLUMNAME
。但是我认为不可能将此表与SYS.SYSTABLES或任何其他表连接。
COLUMNAME
is what I'm searching for. But I see no possibility to join this table with SYS.SYSTABLES or any other table.
推荐答案
您可以将systables和syscolumns与 TABLEID = REFERENCEID
You can join systables and syscolumns with 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
这篇关于Apache Derby:检索空表的列名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!