【发布时间】:2021-02-14 16:28:35
【问题描述】:
我正在寻找有关如何在特定情况下使用 QSYS2.DATA_AREA_INFO 的建议。所以我创建了一些从多个表中选择数据的视图。我也在尝试使用 DATA_AREA_INFO 函数从数据区域获取数据。
视图需要安装在多个数据库中。 create view SQL 语句没有硬编码任何库。从中提取数据的表将基于我们在创建视图时在 iSeries 导航器中设置的默认库。因此,一旦创建了视图,它将永久指向默认数据库集中的表。 (希望这是正确的吗?)
问题在于从数据区域获取数据:
SELECT DATA_AREA_VALUE
FROM TABLE(QSYS2.DATA_AREA_INFO(
DATA_AREA_NAME => 'TESTDA1',
DATA_AREA_LIBRARY => '*LIBL'))
如上编写语句将导致视图从库列表中的数据区域中选择数据。
但执行视图的作业可能没有库列表设置。因此我不能依赖 DATA_AREA_LIBRARY => '*LIBL'
有没有一种方法可以使视图始终指向同一个数据库(与表的工作方式相同)?
【问题讨论】:
-
如果数据区与知道名称的表在同一个库中,则可以将*LIBL替换为
TABLE_SCHEMA('TABLE_IN_THE_SAME_LIBRARY_AS_THE_DATA_AREA')
标签: db2-400