Procédure stockée erreur PLS-00201: identificateur 'UTL_HTTP" doit être déclarée
Je suis en train de créer une procédure stockée qui demande certaines données XML à partir d'un service. J'ai trouvé plusieurs exemples en ligne et tous point à l'aide de cette UTL_HTTP paquet. Cependant, chaque fois que j'ai essayé de compiler mon magasin de procédure avec qui j'ai l'erreur:
PLS-00201: identifier 'UTL_HTTP' must be declared
Voici le squelette de base du code que je veux utiliser.
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;
Il échoue dans les lignes indiquées et ne compile pas. Je suis de l'utilisation d'Oracle Express Edition et j'ai déjà essayé de subvention mon utilisateur les droits d'exécution à ce colis. Il n'a pas de travail.
Quoi d'autre puis-je regarder? Quoi d'autre pourrait en être la cause?
Merci!
OriginalL'auteur Luis Garcia | 2014-10-14
Vous devez vous connecter pour publier un commentaire.
Comme vous l'avez déjà trouvé vous-même, ce qui semble être un problème de permission. Votre utilisateur n'a de toute façon pas avoir accès à la UTL_HTTP paquet. Assurez-vous que votre utilisateur a l'autorisation d'EXÉCUTION sur l'emballage:
Note de ce que vous pourriez avoir à faire ce que SYS.
À l'aide de SQL Developer (qui je peux recommander si vous êtes en train de faire PL/SQL de développement), voir si vous pouvez ensuite regarder le paquet en quelque sorte. Si cela n'aide pas, merci de poster les autorisations que votre utilisateur a actuellement.
Ce n'
SELECT * FROM dba_objects WHERE object_name='UTL_HTTP'
retour? Bien que je pense que UTL_HTTP doit exister dans votre base de données... Peut-être qu'il n'est pas disponible dans le XE?OriginalL'auteur Simon K.