2014-11-02 641 views
1

我無法執行以下說明─Oracle錯誤「ORA-28759:未能打開文件」請求UTL_HTTP包

DECLARE 
    lo_req UTL_HTTP.req; 
    lo_resp UTL_HTTP.resp; 
    BEGIN 
    UTL_HTTP.SET_WALLET ('file: C:\app\wallet','[email protected]'); 
    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:\程序\錢包和密碼ABCD @ 1234 。

ORA-29273: HTTP request failed 
ORA-06512: at "SYS.UTL_HTTP", line 1130 
ORA-28759: failure to open file 

我該如何解決:
當執行該代碼,顯示下面的錯誤?

+0

您可以檢查Oracle用戶是否具有文件的讀取權限。 – vishad 2014-11-02 10:51:16

+1

刪除'file:'和'C:\ app \ wallet'之間的空格。祝你好運。 – 2014-11-02 15:22:42

+0

我該如何檢查? @vishad – 2014-11-02 15:53:16

回答

2

documentation for UTL_HTTP.SET_WALLET()有兩個東西,說的路徑:

  1. 格式是這樣在Windows file:c:\WINNT\Profiles\username\WALLETS
  2. 錢包路徑必須從數據庫服務器訪問。

很明顯,您的代碼不符合第一個要求,因爲file關鍵字和驅動器號之間有空格。

也許第二點也適用:數據庫服務器上是否有驅動器?

+0

我已經在file:和path之間刪除了。但仍然收到相同的錯誤信息。我不確定路徑是否可以從數據庫用戶訪問。有什麼方法可以確保這個或如何爲錢包創建一個目錄路徑? 請解釋。 – 2014-11-03 07:58:07

+0

檢查運行Oracle服務器的帳戶對提供的文件夾中的電子錢包文件具有訪問權限。我遇到了Oracle服務器由其他用戶帳戶運行並導致此錯誤的情況。 – Vidra74 2017-04-20 14:15:28

0

您需要爲您的cwallet.sso和ewallet.p12文件添加相應用戶或組的權限。如果您使用了orakpi實用程序,則權限可能不存在。

對於Windows,

1.Select的文件,單擊鼠標右鍵,並選擇屬性。

2.選擇安全選項卡,然後單擊更改權限。

3.單擊添加>位置,然後選擇適當的位置。

4.在選擇用戶或組字段中,輸入ora_dba.Click Check names按鈕以驗證ora_dba組是否存在。

5.單擊確定並顯示權限條目對話框。

6.選中完全控制旁邊的允許複選框,然後單擊確定。

7.在高級安全性對話框中,單擊應用。

8.單擊確定退出對話框。

相關問題