簡體   English   中英

存儲過程錯誤PLS-00201:必須聲明標識符“UTL_HTTP”

[英]Stored procedure error PLS-00201: identifier 'UTL_HTTP' must be declared

我正在嘗試創建一個從服務請求一些XML數據的存儲過程。 我在網上找到了幾個例子,所有這些例子都指向使用這個UTL_HTTP包。 但是,每次我嘗試使用它編譯我的存儲過程時,我都會收到錯誤:

PLS-00201: identifier 'UTL_HTTP' must be declared

這是我想要使用的代碼的基本框架。

PROCEDURE GET_XML_DATA2 AS

BEGIN
   DECLARE
   v_soap_request    VARCHAR2(32767);
   v_soap_response   VARCHAR2(32767);

   v_http_request    UTL_HTTP.req; --Fails here
   v_http_response   UTL_HTTP.resp; -- Fails here too
   v_action          VARCHAR2(4000) := '';

BEGIN

    null;

END;

END GET_XML_DATA2;

它在指定的行中失敗並且不編譯。 我正在使用Oracle Express Edition,我已經嘗試授予我的用戶對該包的執行權限。 那沒起效。 我還能看到什么? 還有什么可能導致這個? 謝謝!

正如您已經想到的那樣,這似乎是一個許可問題。 您的用戶以某種方式無法訪問UTL_HTTP包。 確保您的用戶對包具有EXECUTE權限:

GRANT EXECUTE ON SYS.UTL_HTTP TO my_user;

請注意,您可能必須以SYS身份執行此操作。

使用SQL Developer(如果您正在進行PL / SQL開發,我可以推薦),看看您是否可以以某種方式查看包。 如果這沒有幫助,請發布您的用戶當前擁有的權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM