为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:
【CPU】:
【问题描述】*:DM8表的某条数据无法删除,修改,其他数据没问题,该条问题数据如何删除
具体SQL是什么,报错是什么?
如果表的数据量少,直接使用管理工具,找到表右键浏览数据进行删除。
如果有主键或唯一键,可以通过主键过滤删除。
做个实验,看看是不是有其他会话把这条记录锁了
首先,从SYSOBJECTS表查到这涨表的ID
SELECT ID
FROM SYSOBJECTS
WHERE NAME = '表名'
然后,把查到的表ID值带入下面这个SQL查一下,看看是否有返回记录
SELECT SES.SESS_ID
,SES.SESS_SEQ
,SES.CURR_SCH
,SES.STATE
,SES.CLNT_IP
,SES.APPNAME
,SES.SQL_TEXT
FROM V$LOCK LCK
,V$TRX TRX
,V$SESSIONS SES
WHERE TRX.ID = LCK.TRX_ID
AND LCK.TRX_ID > 0
AND SES.SESS_ID = TRX.SESS_ID
AND LCK.LMODE LIKE '%X%'
AND LCK.TABLE_ID = 上面查到的表ID值
如果能查到对这张表持有锁的会话记录,看一下这个会话的STATE,如果是IDLE状态,则说明这个会话之前执行过DML语句,对表持有锁,但未提交事务。
判断一下这个会话是否可以清理掉,以及未提交的原因。
清理会话后可以试试能否正常操作那条记录。
有报错信息么?