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

Oracle 10g R2中使用UTL_HTTP连接网页报错求助

解决Oracle 10g R2中UTL_HTTP连接HTTPS的ORA-28750错误

问题重现

执行以下SQL语句时触发错误:

SQL> select UTL_HTTP.REQUEST('https://backend.jofotara.gov.jo/core/invoices/',null,'file:E:\ho','Mmarwan2000@') Output from dual;

错误信息:

select UTL_HTTP.REQUEST('https://backend.jofotara.gov.jo/core/invoices/',null,'file:E:\ho','Mmarwan2000@') Output from dual
       *
ERROR at line 1:
ORA-29273: HTTP request failed
ORA-06512: at "SYS.UTL_HTTP", line 1577
ORA-28750: unknown error
ORA-06512: at line 1

已通过orapki配置钱包但问题依旧。

排查与解决步骤

1. 修正钱包路径格式与权限

  • Oracle 10g在Windows环境下,路径需使用正斜杠(/)或双反斜杠(\\),将file:E:\ho改为file:E:/ho或file:E:\\ho后重新测试。
  • 确认Oracle数据库服务账号对E:\ho目录及钱包文件(ewallet.p12/cwallet.sso)拥有读取权限,权限不足会导致钱包无法加载。

2. 验证钱包证书链完整性

  • 用orapki命令查看钱包内证书:
    orapki wallet display -wallet E:\ho
    
    确保目标站点的根CA证书、中间CA证书已完整导入钱包,Oracle 10g对SSL证书链完整性要求严格,缺失中间证书会直接触发握手失败。
  • 核对钱包密码:请求中输入的密码需与创建钱包时的密码完全一致,注意大小写敏感。

3. 调整UTL_HTTP的SSL参数

Oracle 10g默认SSL配置兼容有限,手动设置参数并启用详细异常:

BEGIN
  UTL_HTTP.SET_WALLET('file:E:/ho', 'Mmarwan2000@');
  UTL_HTTP.SET_DETAILED_EXCEPTIONS(true); -- 输出更具体的错误细节
  UTL_HTTP.SSL_VERSION(UTL_HTTP.SSL_VERSION_TLS_1_0); -- Oracle 10g仅支持TLS 1.0,需确认目标站点兼容
  DBMS_OUTPUT.PUT_LINE(UTL_HTTP.REQUEST('https://backend.jofotara.gov.jo/core/invoices/'));
END;
/

启用详细异常后,能精准定位SSL握手失败的具体原因(如证书不匹配、协议不兼容等)。

4. 测试目标站点的SSL兼容性

  • 在数据库服务器上用openssl工具测试目标站点的TLS 1.0支持情况:
    openssl s_client -connect backend.jofotara.gov.jo:443 -tls1
    
    若连接失败,说明目标站点不支持TLS 1.0,Oracle 10g无法直接连接,需考虑升级数据库或通过中间代理转接。

5. 检查网络连通性

  • 执行ping backend.jofotara.gov.jo确认数据库服务器能访问目标站点;若存在代理,需在UTL_HTTP中配置代理:
    UTL_HTTP.SET_PROXY('proxy地址:端口', 'backend.jofotara.gov.jo');
    
  • 检查防火墙/安全组是否允许数据库服务器访问443端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:11:04