PLS-00201: identifier 'SYS.DBMS_PIPE' must be declared

Problem:


I'm getting errors when I compile this procedure.

create or replace procedure send_message
(v_message in varchar2)
is s integer;
begin
dbms_pipe.pack_message(v_message);
s:=dbms_pipe.send_message('DEMO_PIPE');
if s<>0
then raise_application_error(-20200,'ERROR'||to_char(s)||'sending on pipe');
end if;
end send_message;
 
 The errors are ..
   PLS-00201: identifier 'SYS.DBMS_PIPE' must be declared
   PL/SQL: Statement ignored
   PL/SQL: Statement ignored
   PLS-00201: identifier 'SYS.DBMS_PIPE' must be declared
So whats wrong? Thanks

 

Resolvent:


sql>connect sys as sysdba
sql>password: change_on_install
sql> grant execute on dbms_pipe to public;
sql>create public synonym dbms_pipe for dbms_pipe;(if the synonym doesn't exist)
sql>conn scott/tiger
sql>execute the package

 

ps:the all package execute privilege is included in role EXECUTE_CATALOG_ROLE

 


About this Entry

This page contains a single entry by Sky published on December 9, 2005 10:40 AM.

Oracle 9i 新特性研究系列之六 -- 闪回查询(Flashback Query) was the previous entry in this blog.

Oracle9i New Features is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.