2023年8月3日发(作者:)
oracle执⾏update语句时卡住问题分析及解决办法问题开发的时候debug到⼀条update的sql语句时程序就不动了,然后我就在plsql上试了⼀下,发现plsql⼀直在显⽰正在执⾏,等了好久也不出结果。但是奇怪的是执⾏其他的select语句却是可以执⾏的。原因和解决⽅法这种只有update⽆法执⾏其他语句可以执⾏的其实是因为记录锁导致的,在oracle中,执⾏了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住。由于我的java程序中加了事务,之前debug到⼀半的时候我强制把⼯程终⽌了,这样就导致没有执⾏事务提交,所以oracle将代码中update那⼀条的记录锁了。可通过下⾯两步解决:1.⾸先查询锁定记录SELECT , # FROM v$locked_object lo, dba_objects ao, v$session s WHERE _id = _id AND n_id = ;2.然后删除之ALTER system KILL session 'SID,serial#'总结以上就是本⽂关于oracle执⾏update语句时卡住问题分析及解决办法的全部内容,希望对⼤家有所帮助。感兴趣的朋友可以参阅:、、等,若有不⾜之处,欢迎留⾔指正。感谢⼤家对本站的⽀持!
2023年8月3日发(作者:)
oracle执⾏update语句时卡住问题分析及解决办法问题开发的时候debug到⼀条update的sql语句时程序就不动了,然后我就在plsql上试了⼀下,发现plsql⼀直在显⽰正在执⾏,等了好久也不出结果。但是奇怪的是执⾏其他的select语句却是可以执⾏的。原因和解决⽅法这种只有update⽆法执⾏其他语句可以执⾏的其实是因为记录锁导致的,在oracle中,执⾏了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住。由于我的java程序中加了事务,之前debug到⼀半的时候我强制把⼯程终⽌了,这样就导致没有执⾏事务提交,所以oracle将代码中update那⼀条的记录锁了。可通过下⾯两步解决:1.⾸先查询锁定记录SELECT , # FROM v$locked_object lo, dba_objects ao, v$session s WHERE _id = _id AND n_id = ;2.然后删除之ALTER system KILL session 'SID,serial#'总结以上就是本⽂关于oracle执⾏update语句时卡住问题分析及解决办法的全部内容,希望对⼤家有所帮助。感兴趣的朋友可以参阅:、、等,若有不⾜之处,欢迎留⾔指正。感谢⼤家对本站的⽀持!
发布评论