Oracle 甲骨文错误“;ORA-28759:无法打开文件“;请求utl_http包时

Oracle 甲骨文错误“;ORA-28759:无法打开文件“;请求utl_http包时,oracle,plsql,oracle11g,oracle-apex,Oracle,Plsql,Oracle11g,Oracle Apex,我无法执行以下语句- DECLARE lo_req UTL_HTTP.req; lo_resp UTL_HTTP.resp; BEGIN UTL_HTTP.SET_WALLET ('file: C:\app\wallet','abcd@1234'); lo_req := UTL_HTTP.begin_request('https://wordpress.org/'); lo_resp := UTL_HTTP.get_response(lo_req);

我无法执行以下语句-

DECLARE
    lo_req  UTL_HTTP.req;
    lo_resp UTL_HTTP.resp;
  BEGIN
    UTL_HTTP.SET_WALLET ('file: C:\app\wallet','abcd@1234');
    lo_req := UTL_HTTP.begin_request('https://wordpress.org/');
    lo_resp := UTL_HTTP.get_response(lo_req);
    dbms_output.put_line(lo_resp.status_code);
   UTL_HTTP.end_response(lo_resp);
END;
我的钱包路径是C:\app\wallet,密码是abcd@1234.
执行此代码时,显示以下错误:

ORA-29273: HTTP request failed
ORA-06512: at "SYS.UTL_HTTP", line 1130
ORA-28759: failure to open file
如何解决这个问题?

关于路径,有两件事要说:

  • Windows
    文件的格式如下:c:\WINNT\Profiles\username\WALLETS
  • 钱包路径必须可以从数据库服务器访问
  • 显然,您的代码没有通过第一点,因为
    文件
    关键字和驱动器号之间有一个空格


    第二点可能也适用:这是数据库服务器上的驱动器吗?

    您需要为cwallet.sso和ewallet.p12文件添加相应用户或组的权限。如果使用了orakpi实用程序,则可能不存在权限

    对于Windows

    1.选择文件,单击鼠标右键,然后选择“属性”

    2.选择安全选项卡,然后单击更改权限

    3.单击添加>位置,然后选择适当的位置

    4.在选择用户或组字段中,键入ora_dba。单击检查名称按钮以验证ora_dba组是否存在

    5.单击确定,将显示权限输入对话框

    6.选中“完全控制”旁边的“允许”复选框,然后单击“确定”

    7.在“高级安全性”对话框中,单击“应用”


    8.单击“确定”退出对话框。

    是否可以检查Oracle用户是否具有文件的读取权限。删除
    文件:
    C:\app\wallet
    之间的空格。祝你好运。我怎么能检查呢@vishadI已在文件和路径之间删除。但仍然收到相同的错误消息。我不确定数据库用户是否可以访问该路径。有没有办法确保这一点,或者如何为钱包创建目录路径?请解释。检查运行Oracle server的帐户是否对提供的文件夹中的钱包文件具有访问权限。我有一个案例,Oracle server由另一个用户帐户运行,并导致了此错误。