Próbuję utworzyć procedurę składowaną, która zażąda pewnych danych XML z usługi. Znalazłem kilka przykładów on-line i wszystkie z nich wskazują na użycie tego pakietu UTL_HTTP. Jednak za każdym razem starałem się skompilować mój sklep procedury z tym pojawia się błąd:Błąd procedury składowanej PLS-00201: identyfikator "UTL_HTTP" musi zostać zadeklarowany
PLS-00201: identifier 'UTL_HTTP' must be declared
Oto podstawowy szkielet kodu chcę użyć.
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;
Błąd we wskazanych liniach i nie jest kompilowany. Korzystam z wersji Oracle Express Edition i już próbowałem nadać moim użytkownikom uprawnienia do wykonywania tego pakietu. Nie działało. Na co jeszcze mogę patrzeć? Co jeszcze może być przyczyną tego? Dzięki!
Dzięki za odpowiedź! Nie mogłem (nadal nie mogę) zalogować się jako SYS. Próbowałem zalogować się jako SYSTEM i wykonałem polecenie GRANT EXECUTE ON SYS.UTL_HTTP TO my_user. To nie zadziałało i dało mi ten błąd: Błąd zaczynający się od wiersza 1 w poleceniu: ZGODA NA WYKONANIU NA SYS.UTL_HTTP DO ZAINSTALOWANIA Raport o błędzie: Błąd SQL: ORA-00942: tabela lub widok nie istnieje 00942. 00000 - "tabela lub widok nie istnieje" –
Co oznacza "SELECT * FROM dba_objects WHERE nazwa_obiektu = 'UTL_HTTP'' return? Chociaż myślę, że UTL_HTTP powinien istnieć w twojej bazie danych ... Może nie jest dostępny w XE? –