Apache Derby:检索空表的列名 [英] Apache Derby: Retrieve column names for an empty table

查看:62
本文介绍了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:检索空表的列名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆