Oracle错误" ORA-28759:无法打开文件"请求utl_http包时

时间:2014-11-02 09:26:12

标签: 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);
    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

我该如何解决?

2 个答案:

答案 0 :(得分:3)

documentation for UTL_HTTP.SET_WALLET()对路径有两点要说:

  1. Windows file:c:\WINNT\Profiles\username\WALLETS
  2. 上的格式如下
  3. 必须可以从数据库服务器访问钱包路径。
  4. 显然,您的代码在第一点失败,因为file关键字和驱动器号之间有空格。

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

答案 1 :(得分:0)

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

对于Windows,

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

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

3.点击添加>地点,并选择适当的位置。

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

5.单击“确定”,将显示“权限条目”对话框。

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

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

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