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

Sql 使用LIST命令显示DB2中的所有表,sql,db2,Sql,Db2,这很尴尬,但我似乎找不到一种方法来列出DB2数据库中表的名称。以下是我尝试过的: root@VO11555:~# su - db2inst1 root@VO11555:~# . ~db2inst1/sqllib/db2profile root@VO11555:~# LIST ACTIVE DATABASES 我们收到此错误:SQL1092N“ROOT”无权执行请求的命令或操作。 DB2版本号如下 root@VO11555:~# db2level DB21085I Instance "db2in

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

root@VO11555:~# su - db2inst1
root@VO11555:~# . ~db2inst1/sqllib/db2profile
root@VO11555:~# LIST ACTIVE DATABASES
我们收到此错误:
SQL1092N“ROOT”无权执行请求的命令或操作。

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". root@VO11555:~#db2level DB21085I实例“db2inst1”使用“64”位,DB2代码版本为“SQL09071” 级别标识符为“08020107”。 信息令牌是“DB2V9.7.0.1”、“s091114”、“IP23034”和补丁包 "1". 产品安装在“/opt/db2V9.7”处。
您可能希望将查询限制在您的tabschema中

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

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


连接到数据库:

db2 connect to DATABASENAME user USER using PASSWORD
db2 connect to <database-name>
运行此查询:

db2 LIST TABLES
这相当于MySQL中的显示表


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

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

db2 "select tabname from syscat.tables where owner = 'DB2INST1'"
也许您想修改所有者名称,并且需要检查当前所有者的列表

db2 "select distinct owner from syscat.tables"

连接到数据库:

db2 connect to DATABASENAME user USER using PASSWORD
db2 connect to <database-name>
要列出选定架构中的所有表,请使用:

db2 list tables for schema <schema-name>
db2模式列表
要描述表格,请键入:

db2 describe table <table-schema.table-name>
db2描述表

我正在使用DB27.1和SQuirrel。这是唯一对我有效的问题

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

难道不是吗?”db2inst1@VO11555“从第二行开始?您不能用wrkobj命令在绿色屏幕上执行此操作吗?”?不是编程答案,但它将显示您对该命令的感谢。我不熟悉使用我在交钥匙LINUX VM上构建的IBM DB2 Express-C环境。您还应该尝试为所有运行
DB2列表表,以防某些表处于不同的模式中。