Gespeicherte Prozedur-Fehler PLS-00201: Bezeichner 'UTL_HTTP' muss deklariert werden
Ich bin versucht, eine gespeicherte Prozedur erstellen, die Anfrage XML-Daten aus einem Dienst. Ich haben einige Beispiele on-line und alle von Ihnen zeigen, die mit diesem Paket UTL_HTTP. Aber jedes mal habe ich versucht zu kompilieren, meine Speicher-Prozedur mit, dass bekomme ich die Fehlermeldung:
PLS-00201: identifier 'UTL_HTTP' must be declared
Hier ist die grundlegende Skelett der code, den ich verwenden möchten.
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;
Es nicht auf die angegebenen Zeilen und nicht kompiliert. Ich bin mit der Oracle Express Edition und ich habe schon versucht, zu gewähren mein Benutzer execute-Rechte auf das Paket. Es hat nicht funktioniert.
Was kann ich sonst noch schauen? Was sonst könnte die Ursache sein?
Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als Sie schon dachte, aus sich selbst, das scheint ein Berechtigungsproblem. Ihr user macht irgendwie keinen Zugang zu dem UTL_HTTP-package. Stellen Sie sicher, dass Ihre Benutzer die EXECUTE-Berechtigung für das Paket:
Beachten Sie, dass Sie möglicherweise zu tun haben, diese als SYS.
Mithilfe von SQL Developer (was ich empfehlen kann, wenn Sie PL/SQL-Entwicklung), sehen, wenn Sie können, dann schauen Sie auf das Paket irgendwie. Wenn das nicht hilft, poste bitte die Berechtigungen, die der Benutzer aktuell hat.
SELECT * FROM dba_objects WHERE object_name='UTL_HTTP'
zurück? Obwohl ich denke, dass UTL_HTTP sollte in der Datenbank existieren... Vielleicht ist es nicht im XE?