如何在DB2中查找表的模式?

如何在DB2中查找表的模式?,db2,database-administration,Db2,Database Administration,我是DB2新手,在数据库“WLADMIN”下创建了两个表“PROJECT_ADAPTERS”和“PROJECT_APPLICATIONS” 我可以使用“syscat.tables”查看这些表,如下所示 [db2inst1@574 ~]$ db2 "select TABNAME from syscat.tables" | grep PROJ PROJECT_ADAPTERS PRO

我是DB2新手,在数据库“WLADMIN”下创建了两个表“PROJECT_ADAPTERS”和“PROJECT_APPLICATIONS”

我可以使用“syscat.tables”查看这些表,如下所示

[db2inst1@574 ~]$ db2 "select TABNAME from syscat.tables" | grep PROJ
PROJECT_ADAPTERS                                                           
PROJECT_APPLICATIONS                                                          
但是我不确定它属于哪个模式

我试着写一个小脚本,循环遍历所有的“模式”

schemaname=$(db2 -v select schemaname from syscat.schemata)

for each_schema in $schemaname
do
    db2 list tables for schema $each_schema | grep PROJ
done
但是,我的表“PROJECT\u ADAPTERS”和“PROJECT\u APPLICATIONS”没有针对任何模式显示

我做错了什么(或者)我还应该注意什么


请帮助我解决此问题

大多数表都有多列,您可以使用它们…;)

从syscat.tables中选择tabname,tabschema,其中tabname(如'PROJECT%')
应显示您的表和架构名称


该目录有完整的文档记录。

db2“从syscat.tables中选择tabname,tabschema,其中tabname(如'PROJECT%')会将我的'PROJECT_ADAPTERS'模式生成为'cls'。但是,当我输入“db2select*fromcl.PROJECT\u LOCK”时,它会显示“cls.PROJECT\u LOCK”“是一个未定义的名称。SQLSTATE=42704项目锁定报告的模式是什么?它有定义吗?您只是说可以看到PROJECT_ADAPTERS的条目。表PROJECT_ADAPTERS和PROJECT_LOCK都属于架构“CLS”。但是,我并没有得到模式的“定义”。请让我知道如何检查架构是否已定义,如果未定义,如何定义架构?@SathishKumar如果查询返回的架构名称为“cls”而不是“cls”(大小写重要),则必须将架构名称用双引号括起来,如
从“cls”中选择*。project\u lock
。这将在尝试从命令行进行查询时产生挑战,您必须在命令行中处理解释引号的shell。示例:
db2“select*from\“cls\”.project\u lock“
@Ian您提供的语法非常有效。谢谢