Select SYSIBM.SYSCOLUMNS查询在使用备注时显示两次列
在使用DB2和只出现在一个表中的Select SYSIBM.SYSCOLUMNS查询在使用备注时显示两次列,select,db2,system-tables,Select,Db2,System Tables,在使用DB2和只出现在一个表中的SYSIBM.SYSCOLUMNS时,我注意到一个奇怪的行为 这是我的疑问: select distinct NAME, COLTYPE, LENGTH, SCALE, REMARKS from SYSIBM.SYSCOLUMNS where TBNAME='Table1'; 通常情况下,结果会显示每个表一次 |===================================| | NAME |COLTYPE|LENGTH|SCALE|REMARKS|
SYSIBM.SYSCOLUMNS
时,我注意到一个奇怪的行为
这是我的疑问:
select distinct NAME, COLTYPE, LENGTH, SCALE, REMARKS from SYSIBM.SYSCOLUMNS where TBNAME='Table1';
通常情况下,结果会显示每个表一次
|===================================|
| NAME |COLTYPE|LENGTH|SCALE|REMARKS|
|col1 | ..... |......|.....|.......|
|col2 | ..... |......|.....|.......|
|col3 | ..... |......|.....|.......|
|===================================|
但如果我使用一个特定的表,我们称之为Table2
,则每列显示两次:
|===================================|
| NAME |COLTYPE|LENGTH|SCALE|REMARKS|
|col1 | ..... |......|.....|.......|
|col1 | ..... |......|.....|.......|
|col2 | ..... |......|.....|.......|
|col2 | ..... |......|.....|.......|
|col3 | ..... |......|.....|.......|
|col3 | ..... |......|.....|.......|
|===================================|
但仅当我在select语句中包含备注时。如果我从select中删除备注
,则一切正常
问题的原因可能是什么?我的查询有问题吗?每行的备注列中有什么
原始查询中有一个不同的。由于您只选择表名,是否可能在多个模式中有相同的表;一个带备注,一个不带备注?每行备注栏中有什么内容
原始查询中有一个不同的。由于您只选择表名,是否可能在多个模式中有相同的表;一个有备注,一个没有?您没有考虑模式。模式A和模式B中可能有表2
在卢乌:
我个人建议使用syscat模式来查询目录。sysibm是DB2内部的,这些表可能在不同版本之间发生变化
select TABSCHEMA, TABNAME, COLNAME, TYPENAME, LENGTH, SCALEREMARKS
from syscat.columns
where tabname = 'TABLE2'
您没有考虑模式。模式A和模式B中可能有表2
在卢乌:
我个人建议使用syscat模式来查询目录。sysibm是DB2内部的,这些表可能在不同版本之间发生变化
select TABSCHEMA, TABNAME, COLNAME, TYPENAME, LENGTH, SCALEREMARKS
from syscat.columns
where tabname = 'TABLE2'
DB2的哪个平台和版本?大型机和版本10.2。DB2的哪个平台和版本?大型机和版本10.2。