ORA-06596: object cannot be purged, object is permanently kept in shared pool

文档解释

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函数清除共享池中的对象。

你可能感兴趣的