前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >plsql被另一个用户锁住的解决办法

plsql被另一个用户锁住的解决办法

作者头像
小小鱼儿小小林
发布2020-06-24 11:49:04
9660
发布2020-06-24 11:49:04
举报
文章被收录于专栏:灵儿的笔记灵儿的笔记

今天很不幸,可能由于自己的疏忽,在用plsql的时候用select * from 表名 for update 去修改数据,之后由于接着专心写代码修bug等又做其他事情了,导致可能没有关闭锁,然后关闭了plsql,之后再查修改的数据准备提交的时候,就报错了,提示【记录被另一个用户锁住】,所以这里提醒一下大家,最好不要用for update去修改数据,要用 select A.*,A.rowid from 表名 去修改数据,这样可以避免被锁。

如何小编也是求助了网上的大神们的解决办法,希望能够帮助到大家吧

1、查看数据库锁,诊断锁的来源及类型:

select object_id,session_id,locked_mode from v$locked_object;

或者用以下命令:

select b.owner,b.object_name,l.session_id,l.locked_mode from v$locked_object l, dba_objects b where b.object_id=l.object_id

2、找出数据库的serial#,以备杀死:

select t2.username,t2.sid,t2.serial#,t2.logon_time from vlocked_object t1,vsession t2 where t1.session_id=t2.sid order by t2.logon_time;

3、杀死该session:   

alter system kill session 'sid,serial#'

以上基本就可以实现解锁,但是在小编的操作过程中,好像多用了几次 select A.*,A.rowid from 表名

去操作 的时候,就自动解锁了,当然具体场景,大家可以多尝试一下,说不定会有另外的收获呢。

参考文章:

https://blog.csdn.net/jarniyy/article/details/51133214

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-09-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档