如何从Oracle APEX环境访问Oracle 19c容器库中的可插拔数据库
从CDB上的APEX 22.1访问PDB的操作步骤
1. 确保PDB处于可用状态
- 以SYSDBA身份登录CDB,执行命令打开所有PDB:
ALTER PLUGGABLE DATABASE ALL OPEN READ WRITE; - 确认监听已注册所有PDB的服务名,可通过CDB中执行以下查询验证:
SELECT name, con_id FROM v$active_services WHERE con_id != 1;
2. 为每个PDB配置APEX组件
APEX安装在CDB的CDB$ROOT中,需在每个PDB中运行启用脚本以关联核心组件:
- 切换到目标PDB:
ALTER SESSION SET CONTAINER = <你的PDB名称>; - 运行APEX安装目录下的
apxpdb.sql脚本(默认路径为$ORACLE_HOME/apex):
该脚本会在PDB中创建APEX工作区所需的元数据对象,并完成与CDB中APEX核心的关联。@apxpdb.sql
3. 创建指向PDB的数据库链接
在CDB的APEX中通过数据库链接访问PDB数据:
- 登录APEX管理员工作区,进入SQL Workshop > Utilities > Database Links
- 创建数据库链接的SQL示例:
其中CREATE DATABASE LINK PDB_LINK_01 CONNECT TO PDB_APP_USER IDENTIFIED BY "用户密码" USING 'PDB01_SERVICE_NAME';PDB01_SERVICE_NAME是步骤1中查询到的对应PDB服务名。
4. 在APEX应用中关联PDB数据源
- 进入目标APEX应用的Shared Components > Data Sources
- 创建新数据源,选择"Database"类型,指定之前创建的数据库链接,即可直接访问PDB中的表、视图等对象。
- 若需为不同PDB创建独立工作区,可在Manage Workspaces > Create Workspace中,关联对应PDB的数据库链接或模式。
5. 验证访问
创建测试页面,添加基于PDB数据源的报表或表单,确认数据可正常读取、修改。
参考文档指引
- Oracle《Application Express Installation Guide》中「Configuring Application Express in a Multitenant Environment」章节
- Oracle《Database Administrator’s Guide》中「Managing Database Links」章节
内容的提问来源于stack exchange,提问作者Muhammad Awais Abbas
相关产品推荐
相关产品推荐

