在编写通过JDBC驱动程序连接Java和DB2的程序时,我试图编写一个程序来检索给定数据库中的所有数据(包含在所有表中的所有记录).当我运行该程序时,我发现它大部分都有效.但是,有几个表没有从中收集数据.我从IBM的捆绑命令编辑器中访问了这些表,发现它们包含数据.我跑了
SELECT*FROM SYSCAT.COLUMNS WHERE TABNAME ='Table'
针对数据库,发现这些表在SYSCAT.COLUMNS表中没有列记录.我相信我拼错了表名,我跑了
SELECT*FROM SYSCAT.COLUMNS
针对数据库并手动查找TABNAME下的表.我找不到.当我跑
SELECT*FROM SYSCAT.TABLES
我在可用表列表中找到了该表.但是,在SYSCAT.TABLES中,我还发现TYPE'A'的所有表都没有SYSCAT.COLUMNS中的任何记录.我想知道IBM的推理是什么,以及如何找出这些特定类型的表的字段名称.
TL; DR如何在不使用SYSCAT.COLUMNS通过标准SQL查询到DB2数据库的情况下获取DB2的列名?