我也不太清楚,但可能是权限的问题。
还是找找有关资料吧。
ORA-04031: unable to allocate  bytes of shared memory ("","","","")

解决方案 »

  1.   

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

  2.   

    分配的shared memory 不够用了,试试增加以下参数:
    SHARED_POOL_RESERVED_SIZE
    SHARED_POOL_SIZE
    LARGE_POOL_SIZE
      

  3.   

    这有些资料,你看看有没有用
    04031: "unable to allocate %s bytes of shared memory (\"%s\",\"%s\",\"%s\",\"%s\")"
    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
     INIT.ORA parameters "shared_pool_reserved_size" and 
     "shared_pool_size".
     If the large pool is out of memory, increase the INIT.ORA
     parameter "large_pool_size".
      

  4.   

    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. 
      

  5.   

    我不知道到底该分多大比较合适,现在数据库中参数的配置分别是:
    共享池:60M
    缓冲区高速缓存:32M
    大型池:1024k
    Java池:32M
    SGA总容量为:93.76959M
    我尝试过在oracle的管理界面中修改这几个参数,但提示说:
    无法应用动态参数,ora-02097,无法修改参数,因为指定的值无效
    ora-00384:没有足够的内存来增加高速缓存的大小
    难道只有在数据库的参数文件中配置?
    另外,刚开始开发的时候,并没有出现过这个问题,后来好像在写了几个存储(都是比较简单的)之后,才开始出现这个问题的。这和大型池、Java池有关嘛?
    谢谢!请一定帮忙!