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