Curtesy of oracle metalink
=================

Code:
 
 

Problem Description:
====================

You are doing any of the following activities

1.	Compiling PL/SQL
2.	Running or executing a PL/SQL script or block
3.	Connecting to SQL*Plus
4.	Running "catproc.sql" 

and receive:
	
  PLS-213: Package standard not accessible
    Cause: The PL/SQL compiler could not find package STANDARD in the current 
           Oracle database. To compile a program, PL/SQL needs package STANDARD.
   Action: Check that package STANDARD is available in the current Oracle 
           database, then retry the operation.

--AND/OR--

ORA-06553: PLS-213: package STANDARD not accessible


You may also receive the following error:  

  ORA-01933: cannot create a stored object using privileges from a role
             running catproc.sql.
      Cause: An attempt was made to create a stored object using privileges 
             from a role. Stored objects cannot use privileges from roles.
     Action: Grant the required privileges to the user directly.


Solution Description:
=====================

You need to verify the package STANDARD is valid and owned by SYS. Do the 
following:

1) Check the status of the package STANDARD using:

connect sys/
SQL> SELECT * FROM DBA_OBJECTS WHERE OWNER = 'SYS'
  AND OBJECT_NAME = 'STANDARD';

If you find the status is 'INVALID' then:

 SQL> ALTER PACKAGE STANDARD COMPILE;

 You may also find that a number of other packages are in 'INVALID'
 state.  They should ALL be (re)compiled.

If you find STANDARD does not exist then:

 Verify "$ORACLE_HOME/rdbms/admin/standard.sql" exists.

  If this file does not exist then:

   You probably did not install PL/SQL.
   You must use the Installer to install PL/SQL.

  If the file does exist then:

   Verify that your ORACLE_SID is set correctly:

   SQL> connect sys/
   SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql


2) Verify that STANDARD is owned by SYS:

   SQL>  SELECT * FROM DBA_OBJECTS WHERE OBJECT_NAME = 'STANDARD';

   If OWNER != SYS then catproc.sql was not correctly executed
   by SYS.  You will have to drop these packages and rerun catproc
   as SYS.

3) Try running "catalog.sql" and "catproc.sql" while opening a spool file
   to catch any errors that may have occurred.

Look for Errors like:

ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 2192 bytes of shared memory ("shared pool,

","PROCEDURE$","KQLS heap","KQLS MEM BLOCK")

Create or Replace:
*
ORA-06553: PLS-213: package STANDARD not accessible
           grant execute on STANDARD to public

ORA-04042: procedure, function, package, or package body does not exist

In this case, you would need to increase the "SHARED_POOL_SIZE" in the
"init.ora".

Then re-execute CATALOG and CATPROC.

Increasing "SHARED_POOL_SIZE" will allocate more resources and
allow the scripts to run successfully.


Explanation:
============

The PL/SQL compiler could not find package STANDARD in the current 
Oracle database. To compile a program, PL/SQL needs package STANDARD.

Troubleshoot the PLS-213 by verifying the information above.
Sam