ORA-2973 HTTP 请求失败,ORA-28759 无法打开文件

ORA-2973 HTTP request failed, ORA-28759 failure to open file

提问人:Mohammad Ubaid 提问时间:11/15/2023 最后编辑:Brian Tompsett - 汤莱恩Mohammad Ubaid 更新时间:11/17/2023 访问量:21

问:

我正在使用 https:abc.io/api/connectivity 的 GET API。为了实现这个目标,我添加了证书并创建了 Oracle 钱包,还创建了 ACL,但是当我执行我的程序时,它给了我:

ORA-2973 HTTP 请求失败,ORA-28759 无法打开文件错误。

因为我还向用户授予了 utl.http 的权限。

create or replace function GET_API_DATA
  return varchar2 is
  s_entire_msg clob;
  s_msg        varchar2(80);
  s_url        varchar2(32000);
  s_req        utl_http.req;
  s_resp       utl_http.resp;
  f_result     varchar2(32000);
  v_result     varchar2(20000);
begin


  s_url  := 'https://api.uat/api/connectivity';
  UTL_HTTP.set_wallet('file:c:\wallet', 'Oracle_1234');
  s_req  := utl_http.begin_request(s_url,'GET',null, null, 'ap-hostname');
  s_resp := utl_http.get_response(r => s_req);

  BEGIN
    LOOP
      utl_http.read_text(r => s_resp, data => s_msg);
      s_entire_msg := s_entire_msg || s_msg;
    END LOOP;
  EXCEPTION
    when utl_http.end_of_body THEN
      utl_http.end_response(s_resp);
    WHEN others THEN
      utl_tcp.close_all_connections;
  END;

  apex_json.parse(s_entire_msg);
  v_result := apex_json.get_varchar2(p_path => 'status');
  f_result := v_result;

  return f_result;

EXCEPTION
  when no_data_found then
    null;
end;

enter image description here

数据库 Oracle PLSQL 获取

评论

1赞 oisene 11/15/2023
c:\wallet 是数据库服务器上的一个目录,对 oracle os-user 来说是可读的,它是否包含具有证书的文件?
0赞 Mohammad Ubaid 11/16/2023
是的,目录是在数据库服务器上创建的,我已经向ora_dba授予了权限,如下面的文章[stackoverflow.com/questions/26697841/...

答: 暂无答案