You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle APEX调用外部REST API遇ORA-24247错误,隔离DB服务器如何处理?

解决Oracle APEX在隔离DB环境下访问外部API的问题

核心原因

你的场景里,默认APEX的REST数据源是直接通过数据库发起请求的,但DB服务器处于隔离状态,既没有对应ACL权限,也无法访问外部网络,因此触发ORA-24247错误。而ORDS服务器是可以和外部API连通的(需先确认ORDS所在服务器能访问目标API),所以要把请求路由到ORDS上执行。

具体解决方案

1. 配置APEX通过ORDS代理发起REST请求

APEX支持将外部API请求交由ORDS代理处理,这样请求不再从DB服务器发出,而是由ORDS服务器代劳。

操作步骤:

  • 登录APEX工作区,进入管理 > 实例设置 > 特性
  • 找到REST数据源板块,将使用ORDS作为代理选项设置为是
  • 保存设置后,重新测试你的REST数据源

2. 验证ORDS服务器的网络连通性

确保ORDS所在服务器能访问目标外部API的地址和端口:

  • 在ORDS服务器上用curl或wget测试连通性,示例命令:
    curl https://目标API地址/接口路径
    
  • 如果ORDS服务器也无法访问,需先协调网络团队打通ORDS到目标API的网络链路

3. (可选)配置ORDS的代理参数(若需中转)

如果目标API需要通过特定代理服务器访问,可修改ORDS配置文件ords/conf/ords.properties,添加以下参数:

# HTTP代理地址与端口
ords.proxy.host=你的代理服务器地址
ords.proxy.port=代理端口
# 若代理需认证,补充以下参数
ords.proxy.user=代理用户名
ords.proxy.password=代理密码

修改后重启ORDS服务生效

补充说明

  • 这种方式绕过了数据库的网络ACL限制,因为请求由ORDS发起,DB仅负责与ORDS通信(这部分链路应该已连通,毕竟ORDS要连接DB)
  • 确保ORDS版本与APEX 23.2兼容,推荐使用ORDS 23.x及以上版本

内容的提问来源于stack exchange,提问作者Damo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 17:12:36