【发布时间】:2019-06-07 13:09:42
【问题描述】:
我一直在尝试让 Oracle 调用 REST API。在进行设置和运行时,我们遇到了一个问题,即我们的代码会生成 ORA-53203:安全违规。在隔离问题的过程中,我们设置了一个程序来测试连接,这也会产生相同的错误。
我们使用的是 Oracle 12c,并且我们已经为我们正在测试的主机设置了 ACE/ACL 条目以获得“连接”和“解析”权限。
create or replace procedure showTitleTag ( i_url in varchar2 )
AS
l_httpreq UTL_HTTP.req;
l_httpresp UTL_HTTP.resp;
l_text varchar2(32767);
l_response CLOB;
l_title varchar2(32767);
BEGIN
l_httpreq := UTL_HTTP.begin_request(i_url);
l_httpresp := UTL_HTTP.get_response(l_httpreq);
BEGIN
LOOP
UTL_HTTP.read_text(l_httpresp, l_text, 32766);
l_response := l_response || l_text;
END LOOP;
EXCEPTION
WHEN UTL_HTTP.end_of_body THEN
UTL_HTTP.end_response(l_httpresp);
END;
l_title := REGEXP_REPLACE(l_response, '.*<title> ?(.+) ?</title>.*', '\1', 1, 1, 'in');
DBMS_OUTPUT.put_line(l_title);
EXCEPTION
WHEN OTHERS THEN
UTL_HTTP.end_response(l_httpresp);
RAISE;
END;
这段代码应该为我们提供网页标题标签的内容(我们使用“http://www.redhat.com”作为我们的测试 URL)。相反,我们收到以下错误:
ORA-29273: HTTP request failed
ORA-53203: security violation
ORA-06512: at "APPS.SHOWTITLETAG", line 29
ORA-06512: at line 1
【问题讨论】:
-
我在 redhat.com 上尝试了您的代码,但由于我的 12.1 数据库中的证书错误而失败。我使用了foo.com,它起作用了-返回“Foo.com”