我无法执行以下声明 -
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
我该如何解决?
答案 0 :(得分:3)
documentation for UTL_HTTP.SET_WALLET()对路径有两点要说:
file:c:\WINNT\Profiles\username\WALLETS
显然,您的代码在第一点失败,因为file
关键字和驱动器号之间有空格。
也许第二点也适用:是数据库服务器上的驱动器吗?
答案 1 :(得分:0)
您需要为cwallet.sso和ewallet.p12文件添加相应用户或组的权限。如果您使用了orakpi实用程序,则可能不会出现特权。
对于Windows,
1.选择文件,单击鼠标右键,然后选择“属性”。
2.选择“安全”选项卡,然后单击“更改权限”。
3.点击添加>地点,并选择适当的位置。
4.在“选择用户或组”字段中,键入ora_dba。单击“检查名称”按钮以验证ora_dba组是否存在。
5.单击“确定”,将显示“权限条目”对话框。
6.选中“完全控制”旁边的“允许”复选框,然后单击“确定”。
7.在“高级安全性”对话框中,单击“应用”。
8.单击“确定”退出对话框。