Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 存储过程错误PLS-00201:必须声明标识符“UTL\U HTTP”_Oracle_Stored Procedures - Fatal编程技术网

Oracle 存储过程错误PLS-00201:必须声明标识符“UTL\U HTTP”

Oracle 存储过程错误PLS-00201:必须声明标识符“UTL\U HTTP”,oracle,stored-procedures,Oracle,Stored Procedures,我试图创建一个存储过程,从服务请求一些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

我试图创建一个存储过程,从服务请求一些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包。确保您的用户对包具有执行权限:

GRANT EXECUTE ON SYS.UTL_HTTP TO my_user;
请注意,您可能必须作为SYS执行此操作


如果您正在进行PL/SQL开发,我建议您使用SQL Developer,看看您是否能够以某种方式查看该包。如果没有帮助,请发布您的用户当前拥有的权限。

谢谢您的回复!我无法以SYS身份登录。我尝试以系统身份登录并执行您的命令GRANT EXECUTE ON SYS.UTL\u HTTP给我的用户。它不起作用,并给了我以下错误:错误从命令中的第1行开始:将SYS.UTL_HTTP上的EXECUTE授予spotfire错误报告:SQL错误:ORA-00942:表或视图不存在00942。00000-表或视图不存在从dba\U对象中选择*的对象\u name='UTL\u HTTP'返回什么?虽然我认为UTL_HTTP应该存在于您的数据库中。。。可能在XE中不可用?