如何在不修改URL的情况下动态切换Oracle Apex 22语言?
Oracle Apex 22 无URL变更切换语言方案
页眉前流程完全可行,但单纯执行ALTER SESSION SET NLS_LANGUAGE = 'BASQUE';无法生效的原因是,Apex的语言渲染逻辑不仅依赖Oracle会话的NLS设置,还需要同步Apex自身的会话语言属性。以下是具体实现步骤:
- 创建页眉前流程,类型选择「PL/SQL」
- 流程代码需要同时完成两个操作:
- 调整Oracle会话的NLS参数:
ALTER SESSION SET NLS_LANGUAGE = 'BASQUE'; ALTER SESSION SET NLS_TERRITORY = 'BASQUE'; - 调用Apex内置API同步会话语言属性(注意替换为对应语言的ISO代码,巴斯克语为
eu):APEX_UTIL.SET_SESSION_LANGUAGE('eu');
- 调整Oracle会话的NLS参数:
- 设置流程触发条件:根据你存储用户语言偏好的位置来配置,比如读取会话级应用项(如
P0_SELECTED_LANG)、浏览器Cookie或用户表中的语言字段,当该值变化时执行流程。
需要注意的前提是:你的Apex应用已经安装了巴斯克语言包,否则无法加载对应语言的翻译资源。
内容的提问来源于stack exchange,提问作者Thomas Carlton
相关产品推荐
相关产品推荐

