使用 LIST 命令显示 DB2 中的所有表

Posted

技术标签:

【中文标题】使用 LIST 命令显示 DB2 中的所有表【英文标题】:show all tables in DB2 using the LIST command 【发布时间】:2011-02-15 11:06:49 【问题描述】:

这很尴尬,但我似乎无法找到一种方法来列出我们 DB2 数据库中表的名称。这是我尝试过的:

root@VO11555:~# su - db2inst1
root@VO11555:~# . ~db2inst1/sqllib/db2profile
root@VO11555:~# LIST ACTIVE DATABASES

我们收到此错误:SQL1092N "ROOT" does not have the authority to perform the requested command or operation.

DB2 版本号如下。

root@VO11555:~# db2level
DB21085I 实例“db2inst1”使用“64”位和 DB2 代码版本“SQL09071”
具有级别标识符“08020107”。
信息性标记是“DB2 v9.7.0.1”、“s091114”、“IP23034”和 Fix Pack
“1”。
产品安装在“/opt/db2V9.7”。

【问题讨论】:

不应该是从第二行开始的“db2inst1@VO11555”吗? 你不能用 wrkobj 命令在绿屏上做这个吗?不是编程答案,但它会告诉你 【参考方案1】:
select * from syscat.tables where type = 'T'

您可能希望将查询限制为您的 tabschema

【讨论】:

【参考方案2】:

您是否安装了用户 db2inst2,我想,我记得,db2inst1 非常具有管理性

【讨论】:

【参考方案3】:

获取 DB2 中当前数据库的表列表 -->

连接数据库:

db2 connect to DATABASENAME user USER using PASSWORD

运行此查询:

db2 LIST TABLES

这相当于 mysql 中的 SHOW TABLES。

在运行 list tables 命令之前,您可能需要对正确的架构执行“set schema myschema”。默认情况下,登录时您的架构与您的用户名相同 - 通常不包含任何表。您可以使用“values current schema”来检查您当前设置的架构。

【讨论】:

感谢您的命令。我不熟悉使用在我的 Turnkey LINUX VM 上构建的 IBM DB2 Express-C 环境。 您还应该尝试运行db2 LIST TABLES FOR ALL,以防某些表处于不同的架构中。【参考方案4】:

在您首选的 shell 会话上运行此命令行:

db2 "select tabname from syscat.tables where owner = 'DB2INST1'"

也许您想修改所有者名称,并需要查看当前所有者列表?

db2 "select distinct owner from syscat.tables"

【讨论】:

【参考方案5】:

连接数据库:

db2 connect to <database-name>

列出所有表:

db2 list tables for all

要列出所选架构中的所有表,请使用:

db2 list tables for schema <schema-name>

要描述表格,请输入:

db2 describe table <table-schema.table-name>

信用http://onewebsql.com/blog/list-all-tables

【讨论】:

【参考方案6】:

我正在使用 db2 7.1 和 SQuirrel。这是唯一对我有用的查询。

select * from SYSIBM.tables where table_schema = 'my_schema' and table_type = 'BASE TABLE';

【讨论】:

以上是关于使用 LIST 命令显示 DB2 中的所有表的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL用啥命令查询所有表名

从 DB2 命令获取 REXX 中的输出

db2常用命令

用于检索给定模式的所有表名的 DB2 查询

我想使用 SQL for DB2 z/OS v9 计算模式中所有表中的记录

在mysql中怎样显示表里的内容