PLsql 修改查询结果

在使用plsql查询出数据后,点击左上角的锁图标,弹出提示信息:these query results are not updateable. Include the ROWID to get updateable results. 该提示对应的查询语句为 select * from tablename

方法一 
修改查询语句为select t.*, t.rowid from [tablename] t


点击左上方的锁,时可以发现已经不在弹出提示,并且编辑器也有了变化,这是我们就可以开始编辑数据了。
修改需要修改的数据,然后点做上方的绿色的勾完成编辑,然后再 点锁,锁定编辑

编辑完成后别忘了点击commit提交修改哦,否则修改是不生效的。

方法二
修改查询语句为select * from [tablename] for update

点击左上方的锁,时可以发现已经不在弹出提示,并且编辑器也有了变化,这是我们就可以开始编辑数据了。

修改需要修改的数据,然后点做上方的绿色的勾完成编辑,然后再点锁,锁定编辑

编辑完成后别忘了点击commit提交修改哦,否则修改是不生效的。

注意:使用for update修改数据后,必须点击提交或者回滚,不然会造成当前数据锁死,在生产环境中,会造成后面的数据库访问杜塞,进而卡死整个系统的严重事故,慎用!!建议用方法1修改数据!



oracle for update使用注意事项

今日在使用  oracle for update sql命令的时候,因为疏忽,在PLSQL中没有提交sql,导致生产线卡死20分钟,血淋淋的教训啊,

现在,特别注意,运行select...for update后  一定要记得把这个,提交或者回滚,点了,不然数据库直接锁死!!

再附上查询哪个用户锁定哪张表的sql:

--查看被锁的表 
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
--查看那个用户那个进程照成死锁
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;



  • 4
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值