各位大佬求解!!!在PL/SQL 中delete表中的数据后忘记提交怎么解决

weixin_46612850 2020-11-28 12:53:56
delete from I_PRINTORDER where id='0048'
在执行完这个语句后忘记提交,然后退了pl/sql,现在也没法提交了,数据仍然是存在的。
再次执行上面的语句就不能执行了,求解决办法。
...全文
540 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
晴天8 2020-11-30
  • 打赏
  • 举报
回复
首先,以比较大权限的用户登录,查询出未提交的事务

SELECT dob.OBJECT_NAME Table_Name,lo.SESSION_ID||', '||vss.SERIAL# 删除号,  
lo.locked_mode,lo.SESSION_ID, vss.SERIAL#,vss.action Action,vss.osuser OSUSER, vss.LOGON_TIME,  
vss.process AP_PID, VPS.SPID DB_PID ,vss.*  
From v$locked_object lo, dba_objects dob, v$session vss, V$PROCESS VPS  
Where lo.OBJECT_ID = dob.OBJECT_ID  
and lo.SESSION_ID = vss.SID  
AND VSS.paddr = VPS.addr  
order by 2,3,DOB.object_name
然后,杀死未提交事务 删除查询出来的事务 ('34, 49517' 是上面查询出来的删除号) ALTER system kill session '34, 49517' 最后,再次执行你的操作,然后提交

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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