ora-4031

这个错误是由数据库内存溢出造成的,在项目中执行数据库包体的时候每执行一次就放一次包体中的游标,使游标过大,就出现次错误。解决办法如下:
--查询数据库缓存

select   sum(sharable_mem),  count(*),  type    from  v$db_object_cache    group by type;

select * from v$db_object_cache where kept='YES' order by sharable_mem desc;

--执行sql脚本
@?/rdbms/admin/DBmspool.sql;
commit;

--执行将存储过程锁定在共享池中
exec sys.dbms_shared_pool.keep('Fiber_Route');

通过锁定包体在共享中,次锁定重启数据库会清除。

猜你喜欢

转载自lilin530.iteye.com/blog/1987357