注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

风之人生

人生如风,却无法如风般潇洒。

 
 
 

日志

 
 
关于我

一介草民,苟活于上海滩,以甲骨文为生,偶尔对一些国家大事有些兴趣,日常无事常以丝竹之声为乐。

网易考拉推荐

日记账删除时FRM-40501  

2010-05-11 21:20:02|  分类: EBS |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  今天,有个用户反映在删除batch时,出现了这么一个错误,

FRM-40501 ORACLE error: unable to reserve record for update or delete.

经过分析,估计是什么东西把一张基表锁住,就是JE_GL_BATCHES这张表。可以通过以下SQL来检查。

SELECT aob.object_name,
aob.object_id,
vob.process,
vob.session_id
FROM all_objects aob, v$locked_object vob
WHERE aob.object_id = vob.object_id
and aob.object_name like '%JE%GL%';

果然查处有个session将此表锁住,然后我们就可以找到这个session,v$seesion看了一下状态,是inactive,估计是客户端上的僵死进程,所以我们可以使用alter system kill session 'sid,serial#'来杀掉他。

DECLARE

v_sid NUMBER := &sid;

v_SERIAL_id NUMBER;

sqlStmt VARCHAR2 (1000);

BEGIN

SELECT SERIAL#

INTO v_SERIAL_id

FROM v$session

WHERE SID = TO_CHAR (v_sid);

sqlStmt :=

‘ALTER SYSTEM KILL SESSION ”’

|| TO_CHAR (v_sid)

|| ‘,’

|| TO_CHAR (v_SERIAL_id)

|| ””;

EXECUTE IMMEDIATE sqlStmt;

END;


然后,问题就解决了。

  评论这张
 
阅读(689)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017