Does anyone know why it does this?
If it's a procedure owned by sys, it works fine...
SQL> CREATE OR REPLACE PROCEDURE TEST AS
2 begin
3 dbms_shared_pool.keep('sys.test','P');
4 end;
5 /

Procedure created.

SYS @ orcl:
SQL> execute test;

PL/SQL procedure successfully completed.


But if its a procedure owned by onother user, it does not work...


SYS @ orcl:
SQL> CREATE OR REPLACE PROCEDURE TEST AS
2 begin
3 dbms_shared_pool.keep('demo40.proc_steeve','P');
4 end;
5 /

Procedure created.

SYS @ orcl:
SQL> execute test;
BEGIN test; END;

*
ERROR at line 1:
ORA-01031: insufficient privileges
ORA-06512: at "SYS.DBMS_UTILITY", line 68
ORA-06512: at "SYS.DBMS_SHARED_POOL", line 45
ORA-06512: at "SYS.DBMS_SHARED_POOL", line 53
ORA-06512: at "SYS.TEST", line 3
ORA-06512: at line 1


SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
PL/SQL Release 8.1.7.0.0 - Production
CORE 8.1.7.0.0 Production
TNS for 32-bit Windows: Version 8.1.7.0.0 - Production
NLSRTL Version 3.4.1.0.0 - Production