使用 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 中的所有表的主要内容,如果未能解决你的问题,请参考以下文章