ORA-04031 unable to allocate string bytes of shared memory ("string","string","string","string")Cause: More shared memory is needed than was allocated in the shared pool.Action: If the shared pool is out of memory, either use the DBMS_SHARED_POOL package to pin large packages, reduce your use of shared memory, or increase the amount of available shared memory by increasing the value of the initialization parameters SHARED_POOL_RESERVED_SIZE and SHARED_POOL_SIZE. If the large pool is out of memory, increase the initialization parameter LARGE_POOL_SIZE. 

解决方案 »

  1.   

    但是我的shared pool 已经很大了120M
    另外再请问SQL level 3 是什么东西?
      

  2.   

    ORA-00604: error occurred at recursive SQL level 3
    这个信息表明,在数据库执行内部SQL语句时,发生了错误.
      其中 SQL level 3表示(Structured Query Language)标准3,即在执行使用SQL标准3的语句.
    比如,要往表中插入一行数据,但没有可扩展的空间。ORACLE于是去查寻,哪儿可以建立下一个扩展空间,它有多大小,但没有成功。一般在发生ORA-00604错误时,还伴随着其它的错误.
    ORA-04031: unable to allocate 4192 bytes of shared memory ("shared pool","PROCEDURE$","sga heap","state objects")increase
    SHARED_POOL_RESERVED_SIZE SHARED_POOL_RESERVED_MIN_ALLOC and
    Java_Pool_Size 
      

  3.   

    http://www.orafaq.net/cgi-bin/search/query?q=ORA-00604&mode=all
      

  4.   

    也许是你的disk存在损坏的block,检测一下