首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ORA-29024:在自治数据库中使用UTL_HTTP.REQUEST时证书验证失败

ORA-29024:在自治数据库中使用UTL_HTTP.REQUEST时证书验证失败
EN

Stack Overflow用户
提问于 2021-11-24 21:17:42
回答 1查看 2K关注 0票数 0

当我执行涉及UTL_HTTP.REQUEST调用的以下语句时,我得到ORA-29024:证书验证失败

代码语言:javascript
运行
复制
SELECT UTL_HTTP.REQUEST('https://www.google.com') from DUAL;

ORA-29273: HTTP request failed 
ORA-06512: at "SYS.UTL_HTTP", line 1620 
ORA-29024: Certificate validation failure 
ORA-06512: at "SYS.UTL_HTTP", line 380 
ORA-06512: at "SYS.UTL_HTTP", line 1560 
ORA-06512: at line 1

根据自治数据库文档,UTL_HTTP是支持的PL/SQL包之一。为什么这个查询不起作用?

EN

回答 1

Stack Overflow用户

发布于 2021-11-24 21:17:42

此错误是由于未完成自治数据库中UTL_HTTP的先决条件步骤造成的。正如在文档中的示例中提到的,在调用UTL_HTTP.REQUEST()过程之前,我们首先需要通过DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE()为主机创建一个访问控制列表(ACL),并通过UTL_HTTP.SET_WALLET()设置钱包位置:

代码语言:javascript
运行
复制
-- Create an Access Control List for the host
BEGIN
   DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => 'www.google.com',
         ace =>  xs$ace_type(privilege_list => xs$name_list('http'),
                             principal_name => 'ADMIN',
                             principal_type => xs_acl.ptype_db));
END;
/

PL/SQL procedure successfully completed.

-- Set Oracle Wallet location (no arguments needed)
BEGIN
   UTL_HTTP.SET_WALLET('');
END;
/

PL/SQL procedure successfully completed.

SELECT UTL_HTTP.REQUEST('https://www.google.com') from DUAL;

utl_http.request('https://www.google.com')
-------------------------------------------------------------------------------------
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en"> ...

免责声明:我是Oracle的产品经理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70103055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档