ORA-04031 
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.   

    共享池不够大,你可以把共享池加大: initorasid.ora文件里具体各参数如下:shared_pool_size = 314572800
    # 300 Mdb_block_buffers = 72960
    # 570 Mlog_buffer = 524288
    # 512k (128K*CPU个数)large_pool_size = 31457280
    # 30 Mjava_pool_size = 20971520
    # 20 Msort_area_size = 524288
    # 512k (65k--2M) 根据你实际的物理内存修改这几个参数,然后重新启动数据库
      

  2.   

    以上问题已经解决了,谢谢各位,现有意新问题:SQL> create or replace and compile java source named test as
      2  public class test
      3            {
      4              public static void main (String args[])
      5            {
      6                  System.out.println("HELLO THIS iS A JAVA PROCEDURE");
      7            }
      8            }
      9  /警告: Javaが作成されましたが、コンパイル・エラーがあります。意思是
    警告:java已经被做成了,但是有编译错误。谁知道原因?