oracle 提交之后 游标还需要关闭吗,具体看详细描述
据?另外,比如有A进程已锁定一条记录,B进程也在请求锁定该记录。当A进程做完了更新,关闭了游标(但没提交),那是不是B进程就可以锁定该记录了,因为A还没提交,这时B读出的...
据?
另外,比如有A进程已锁定一条记录,B进程也在请求锁定该记录。当A进程做完了更新,关闭了游标(但没提交),那是不是B进程就可以锁定该记录了,因为A还没提交,这时B读出的数据应该是A做更新之前的吗?如果B也做了更新,B先提交,A后提交。那这条记录最终是A更新的还是B更新的?
帮忙回答仔细点,我说的也有点乱啊,谢谢。
比如C代码中,先声明锁了表中某记录(for update),然后打开游标,操作完这条记录之后,就直接提交(commit)了,没有关闭游标。
那如果有其他进程在上述过程中也在请求锁定该条记录,其他在处理时会不会读到脏数据?
另外,比如有A进程已锁定一条记录,B进程也在请求锁定该记录。当A进程做完了更新,关闭了游标(但没提交),那是不是B进程就可以锁定该记录了,因为A还没提交,这时B读出的数据应该是A做更新之前的吗?如果B也做了更新,B先提交,A后提交。那这条记录最终是A更新的还是B更新的? 展开
另外,比如有A进程已锁定一条记录,B进程也在请求锁定该记录。当A进程做完了更新,关闭了游标(但没提交),那是不是B进程就可以锁定该记录了,因为A还没提交,这时B读出的数据应该是A做更新之前的吗?如果B也做了更新,B先提交,A后提交。那这条记录最终是A更新的还是B更新的?
帮忙回答仔细点,我说的也有点乱啊,谢谢。
比如C代码中,先声明锁了表中某记录(for update),然后打开游标,操作完这条记录之后,就直接提交(commit)了,没有关闭游标。
那如果有其他进程在上述过程中也在请求锁定该条记录,其他在处理时会不会读到脏数据?
另外,比如有A进程已锁定一条记录,B进程也在请求锁定该记录。当A进程做完了更新,关闭了游标(但没提交),那是不是B进程就可以锁定该记录了,因为A还没提交,这时B读出的数据应该是A做更新之前的吗?如果B也做了更新,B先提交,A后提交。那这条记录最终是A更新的还是B更新的? 展开
1个回答
展开全部
建议你网上搜下ORACLE 锁机制和回滚段相关的资料
如果你A进程已经锁定了某些行,这些行将自动获得一个锁,
任何除A进程意外的请求,将等待A事务的完成;
COMMIT是事务结束的标志;再你没有COMMIT之前,代表A事务还在执行。
B事务会继续等待A事务的完成。
如果你A进程已经锁定了某些行,这些行将自动获得一个锁,
任何除A进程意外的请求,将等待A事务的完成;
COMMIT是事务结束的标志;再你没有COMMIT之前,代表A事务还在执行。
B事务会继续等待A事务的完成。
参考资料: 名称: ORACLE技术联盟 群号:48844173 群内成员:488人(上限1000人) 创建时间:2008-09-29
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询