0

我正在尝试从 OCI 中的 PL/SQL 发出 REST/HTTP 请求。

尝试 UTL_HTTP 时我很难过(但使用 APEX_WEB_SERVICE 包成功)。

有没有人在 OCI AutonomousDB 上使用 UTL_HTTP 成功?

BEGIN
    UTL_HTTP.SET_WALLET('');
    http_request := UTL_HTTP.begin_request(UTL_URL.Escape([url]), 'GET');
    http_response := UTL_HTTP.get_response(http_request);
    UTL_HTTP.read_text(http_response, return_text);
    DBMS_OUTPUT.put_line (return_text);
END;

错误报告 – ORA-01031:权限不足 ORA-06512:在“SYS.UTL_HTTP”第 136 行 ORA-06512:在“SYS.UTL_HTTP”第 1410 行
ORA-06512:在第 7 行
01031.00000 -“权限不足”
*原因:试图在没有必要权限的情况下执行数据库操作。
*行动:请您的数据库管理员或指定的安全管理员授予您必要的权限

我已按如下方式设置 ACL,因此授予了 http 权限:

BEGIN
   DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
         host => '[domain]',
        lower_port => 443,
        upper_port => 443,
        ace =>  xs$ace_type(privilege_list => xs$name_list('http'),
                             principal_name => '[name]',
                             start_date => SYSTIMESTAMP,
                             principal_type => xs_acl.ptype_db));
END;
/
4

2 回答 2

0

说“ OCI Autonomous DB 不支持 UTL_HTTP ”具有误导性。首先,您应该澄清您使用的是什么风格的 ADB。您引用的文档链接适用于专用 Exadata 基础架构上的自治数据库 (ADB-D)。共享Exadata 基础架构 (ADB-S)上的自治数据库支持ADB-S 文档中已经提到的 UTL_HTTP 。

于 2021-06-17T18:46:56.310 回答
0

OCI 自治数据库不支持 UTL_HTTP -

不支持的 Oracle 数据库特性

自治数据库不支持以下 Oracle 数据库特性、选项和包。

UTL_SMTP、UTL_HTTP 和 UTL_TCP PL/SQL 包


现在我知道了..

于 2021-06-17T07:31:29.267 回答