gpt4 book ai didi

DB2 syscolumns 不返回所有列

转载 作者:行者123 更新时间:2023-12-02 08:30:01 25 4
gpt4 key购买 nike

运行简单的目录查询时:

选择*来自系统列

我只返回了几百行。这是 AS400 上的 DB2 7.1。有几十个schema,总共一千多个表。我希望这个查询返回几千行,而不是几百行。我返回的行仅来 self 的测试架构和另一位开发人员的测试架构。

我是 DB2 新手(在 Oracle 工作了 20 多年),所以这很令人费解。 IBM 文档说 SELECT 被授予 SYSCOLUMNS 上的 PUBLIC,所以我应该得到一切,对吧?我不知道标记“SYSCOLUMNS”指向什么、 View 或本地表(这可以解释事情)。在我的环境中,对数据库的每个查询都需要 SCHEMA_NAME.TABLE_NAME,因此此 SYSCOLUMNS(没有架构名称)已经是一个异常(exception)。

提前致谢,

数据库

最佳答案

答案取决于您使用的命名模式。

  • *SQL 模式:将表限定为 SCHEMA.TABLE
  • *SYS 模式:将表限定为 SCHEMA/TABLE

(在幕后,架构映射到库,表映射到文件。)

在 *SQL 模式下,如果不指定架构,则使用 CURRENT SCHEMA 的值。默认情况下,您的CURRENT SCHEMA是您的用户配置文件,但您可以像这样更改它:

SET CURRENT SCHEMA = SOMELIB

在*SYS模式下,如果不指定模式,则使用库列表将表名解析为特定文件。

无论如何,我猜测您处于 *SQL 命名模式,并且当前架构设置为测试架构。查询不合格的 SYSCOLUMNS 将为您提供当前架构中的列。

我会尝试以下操作,这应该将范围扩大到系统上的所有列:

SELECT * FROM QSYS2.SYSCOLUMNS

关于DB2 syscolumns 不返回所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27988014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com