gpt4 book ai didi

sql - 是否可以创建一个了解当前模式/库名称的 View ?

转载 作者:太空狗 更新时间:2023-10-30 01:59:35 26 4
gpt4 key购买 nike

背景:DB2 的 iSeries 版本。在每个环境中,都有一个表包含有关其他表的位置列信息。由于此表中的数据是静态的,每次更改表时都必须重新生成,如果不一致,就会出现问题。

所有位置数据都存在于QSYS2.SYSTABLESQSYS2.SYSCOLUMNS中,因此应该可以创建包含相同信息但保证是正确的。旧程序应该能够使用此 View 。

唯一的问题是 View 需要了解当前模式(iSeries 中的数据库),以便从 QSYS2 表中检索正确的信息,因为它们包含所有 模式/库。

关于这是否可能以及如何实现的任何想法?

编辑:回复:Ryan Guill

实际上,我希望 View 在其条件中使用当前库名称来选择 QSYS2.SYSCOLUMNS 中的行。如果我在多个库中有表 T,则 SYSCOLUMNS 将包含每个库中 T 实例的数据。

一个不优雅的解决方案是我可以在每个库中存储库/模式名称,并且 View 将在选择中使用该值...

最佳答案

您是否尝试过使用特殊寄存器CURRENT_SCHEMA

例如:从 QSQPTABL 中选择 CURRENT_SCHEMA

(注意:QSQPTABLSysIBM/SysDummy1 虚拟表相同)

Select * From SysViews
Where System_View_Schema = CURRENT_SCHEMA

'当然只有在您使用 *SQL 命名而不是 *SYS 命名时才有效,但那是另一回事了:)

关于sql - 是否可以创建一个了解当前模式/库名称的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/662554/

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