Oracle Apex 22.2及以上是否支持创建类似Application Items的工作区级全局项?
在Oracle Apex 22.2+中实现工作区级全局项的方案
针对你提出的跨应用共享全局项、支持替换字符串访问且不依赖会话共享的需求,Oracle Apex 22.2及以上版本可以通过以下几种原生或自定义方案实现:
1. 工作区级替换字符串(原生方案)
这是最贴合需求的实现方式,完全支持你需要的&MY_VAR.替换语法:
- 设置路径:工作区管理 → 应用程序构建器 → 工作区实用程序 → 替换字符串 → 创建工作区级替换字符串
- 核心特性:
- 工作区内所有应用均可直接访问,无需共享会话
- 支持静态值或基于SQL查询的动态值
- 可通过
APEX_UTIL.SET_WORKSPACE_SUBSTITUTION_VALUEAPI动态更新值
- 适用场景:全局静态配置、低频更新的动态值
2. 自定义全局配置表+应用级封装
适合需要复杂逻辑(如权限控制、按应用分组)的场景:
- 第一步:创建全局配置表
CREATE TABLE WORKSPACE_GLOBALS ( NAME VARCHAR2(100) PRIMARY KEY, VALUE VARCHAR2(4000), LAST_UPDATED DATE DEFAULT SYSDATE ); - 第二步:在每个应用中创建应用计算项,源类型设为SQL查询,例如:
SELECT VALUE FROM WORKSPACE_GLOBALS WHERE NAME = 'MY_GLOBAL_VAR' - 第三步:通过
&MY_GLOBAL_VAR.在页面项、SQL或PL/SQL中直接访问
3. 封装PL/SQL包模拟工作区设置
如果需要兼容现有应用设置体系,可以通过PL/SQL包统一管理全局值:
- 创建
WORKSPACE_SETTINGS包,提供GET_SETTING函数,实现工作区默认值与应用自定义值的优先级逻辑 - 在各应用中创建应用项,源类型设为PL/SQL表达式:
WORKSPACE_SETTINGS.GET_SETTING('MY_SETTING') - 最终通过
&MY_APP_ITEM.的替换语法访问
内容的提问来源于stack exchange,提问作者Rax
相关产品推荐
相关产品推荐

