关于truncate的问题

qxksos 2002-09-09 12:23:05
我使用truncate来删除数据
SQL> truncate table OperErrors;

truncate table OperErrors

ORA-04020: deadlock detected while trying to lock object 3131430632163251736130130024
从提示信息里好像OperErrors被锁住了,可是我没有通过V$lock没有发现OperErrors被锁住。
请问怎么利用3131430632163251736130130024可以找到锁的相关信息
...全文
131 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoyongzhu 2002-09-09
  • 打赏
  • 举报
回复
下面这两条语句应该对你又帮助,看看吧。

如果仅仅是lock,以下语句可以发现所有用户锁
select s.username,
decode(l.type,'TM','TABLE LOCK',
'TX','ROW LOCK',
NULL) LOCK_LEVEL,
o.owner,o.object_name,o.object_type,s.terminal,s.machine,s.program,s.osuser
from v$session s,v$lock l,dba_objects o
where s.sid=l.sid
and o.object_id=l.id1
and s.username is not null

如果有锁等待或死锁,可以通过以下语句发现
select lpad(' ',decode(l.xidusn,0,3,0))||l.oracle_username User_name,
o.owner,o.object_name,o.object_type
from v$locked_object l,dba_objects o
where l.object_id=o.object_id
order by o.object_id desc
jlandzpa 2002-09-09
  • 打赏
  • 举报
回复
重启数据库.
yuxuan 2002-09-09
  • 打赏
  • 举报
回复
把机子重新启动一下
qxksos 2002-09-09
  • 打赏
  • 举报
回复
谢谢zhaoyongzhu(zhaoyongzhu) ,
用你的sql,我执行了一下,没有发现OperErrors被锁住,
但用truncate table OperErrors 仍然报错
SQL> truncate table opererrors;

truncate table opererrors

ORA-04020: deadlock detected while trying to lock object 3131503416142066928130108744

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧