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

时间:2010-05-04 12:57:24

标签: sql db2

这很令人尴尬,但我似乎无法找到一种方法来列出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  Instance "db2inst1" uses "64" bits and DB2 code release "SQL09071"
with level identifier "08020107".
Informational tokens are "DB2 v9.7.0.1", "s091114", "IP23034", and Fix Pack
"1".
Product is installed at "/opt/db2V9.7".

6 个答案:

答案 0 :(得分:30)

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

连接数据库:

db2 connect to DATABASENAME user USER using PASSWORD

运行此查询:

db2 LIST TABLES

这相当于MySQL中的SHOW TABLES。

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

答案 1 :(得分:20)

连接数据库:

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

答案 2 :(得分:17)

select * from syscat.tables where type = 'T'

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

答案 3 :(得分:5)

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

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

答案 4 :(得分:2)

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

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

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

db2 "select distinct owner from syscat.tables"

答案 5 :(得分:0)

你安装了一个用户db2inst2,我想,我记得,db2inst1是非常管理的