select * from tablename for update的使用 为了防止多人同时更改数据,采用select * from tablename for update语句,当我在修改的时候,通过这条语句把数据获取到应用程序中.那程序怎么知道我还没有提交?因为我认为,当我把数据取出来之后,我已经关闭了connection.这个连接已经不存在了.oracle怎么知道以后我采用update是我提交的呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 会被LOCK住的,COMMIT会释放锁,如果你断开连接,有可能锁不释放,就一直LOCK 断开之后,等用户在应用程序中修改好了数据,再连接提交,可以释放锁吗?或者如果用select ... for update,在提交修改之前,不该断开连接?请指教. 第一,你要用事务处理,不然,这句话有和没一个样。第二,不能用AutoCommit,一般程序这个不会开。第三,参照1楼说的! 这个是oracle中事务处理来处理的。 断开后,再进行连接,就是两个会话了.select .... from update就是悲观的加个锁,你断开连接了意味着你的会话异常关闭了,其余的要由服务器来释放了 对于oracle的DML操作,一旦你的语句还没有commit就已经断开连接了,都作为rollback处理,也就是说,你所有还没有commit的修改,将没有生效。并且服务器的pmon将会回收你的资源,并释放所有的锁对象。不过有些工具在logoff的时候,会默认帮你commit,所以有时感觉没有connect,退出程序却一样修改到了,这其实是工具给你做了一些事情。==================================================================Inthirties关注Oracle数据库 维护 优化,安全,备份,恢复,迁移,故障处理如果你需要帮助或想和我一起学习的请联系联系方式QQ:370140387QQ群: 85837884(注明:数据库)电子邮件:[email protected]网站: http://www.inthirties.com 事务只能存在于一个连接中(分布式事务除外),连接断开,事务自动结束。一般而言,若没有显示commit.系统回自动rollback 用select...for update后,查看锁会发现有一个记录锁和一个表锁,当commit或rollback后,锁才会释放 for update 会请求一个锁,把相应的数据给锁住。。至于锁的信息是在rowid上有相关记录 oracle 10g 资料 请教VC ADO 如何对ORACLE的CLOB操作 困扰已久的问题,跪求大虾帮忙 关于Oracle的问题,对字段进行或操作!!高手进 Statspack分析结果错误 关于开发MIS系统登录时权限控制的问题 100分求一些小的,正确的存储过程(insert,update和delete) 在oracle中怎么判断是否数字类型? 大家帮忙看下我的视图哪里有错? 帮我看一下,我这个select 有无错?大家帮忙 char 类型字段查询不到结果问题 请教oralce中查询数据横向显示
第二,不能用AutoCommit,一般程序这个不会开。
第三,参照1楼说的!
select .... from update就是悲观的加个锁,你断开连接了意味着你的会话异常关闭了,其余的要由服务器来释放了
不过有些工具在logoff的时候,会默认帮你commit,所以有时感觉没有connect,退出程序却一样修改到了,这其实是工具给你做了一些事情。
==================================================================
Inthirties关注Oracle数据库 维护 优化,安全,备份,恢复,迁移,故障处理如果你需要帮助或想和我一起学习的请联系
联系方式QQ:370140387
QQ群: 85837884(注明:数据库)
电子邮件:[email protected]
网站: http://www.inthirties.com
一般而言,若没有显示commit.系统回自动rollback