【问题标题】:Data area access through SQL通过 SQL 访问数据区
【发布时间】: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


【解决方案1】:

您可以将数据区访问封装在一个(服务)程序中,该程序通过 ILE 访问 *dtaara。优点是,您可以在 sql 上下文内外以多种方式重用程序。您可以在此处找到有关此技术的信息:

Scott Klement Powerpoint

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-31
    • 2020-02-21
    • 2017-12-20
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2020-09-30
    相关资源
    最近更新 更多