[英]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.