我正在尝试从 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;
/