文档解释
ORA-06596: object cannot be purged, object is permanently kept in shared pool
Cause: The specified object was permanently kept, therefore, cannot be purged.
Action: Use DBMS_SHARED_POOL.UNKEEP procedure to unkeep the object and then purge it.
ORA-06596: 对象无法被清除,这是因为该对象被永久保存在共享池中了。
官方解释
常见案例
1)当用户去清除Shared Pool中的对象,但不知道有一部分对象是Permanently Kept, 就会出现这种错误。
2) 当用户使用SQL DELETE引用一个表,但不知道Shared Pool中有这个表的索引,同样会出现这个错误。
正常处理方法及步骤
1)使用alter system flush shared_pool 来清除数据库的共享池,然后重启数据库。
2)如果希望修改共享池中某个对象的信息,可以使用Alter system Kill session 命令来删除进程,允许修改数据库的共享池。
3)也可以尝试通过DBMS_SHARED_POOL包中的函数移除指定的对象,或者使用DBMS_SHARED_POOL.PURGE函数清除共享池中的对象。