db2里如何根据数据库中表模式获取相应的表名?

db2里如何根据数据库中表模式获取相应的表名


拉风的咖菲猫
浏览 1312回答 4
4回答

aluckdog

123SELECT NAME,CREATOR, TYPE,REMARKS FROM SYSIBM.SYSTABLESWHERE TYPE IN ('T','V')AND CREATOR='你的schemName';

倚天杖

不知道DB2支持NVL函数不你试试NVL(A,0) 意思就是字段A如果NULL就默认是0如果不行就用case when吧,这个应该是通用的,case when a is null then 0 else a end

翻阅古今

参考代码如下:DatabaseMetaData metaData = conn.getMetaData();ResultSet rs = metaData.getTables(null,null,null,new String[] { "TABLE"});int cnt = 0;while(rs.next()) {cnt++;System.out.println(rs.getString("TABLE_NAME"));}

LEATH

数据库中还有大量系统表的,所以我觉得你查某些模式下的表比较好:select count(*) from syscat.tables where tabschema='GP'GP为某用户模式。当然也可以用select count(*) from syscat.tables where tabschema='GP'查出所有表的数量。再查出有多少张系统表,就是在SYSIBM、SYSTOOLS下的表数目。相减就可以了。我用的是DB2 V9.7。
打开App,查看更多内容
随时随地看视频慕课网APP