一个关于oracle问题!!!在线等待高手! 当一个oracle一张表在被一个进程写的时候,同时另外一个进程申请游标对这个表进行查询,这样会有问题吗?会有什么问题呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 会有问题游标查询的时候数据不一定存在 可能尚为commit 这样得出的结果就不是你想要的了 oracle做这个没有问题,因为它有个叫undo的东东 9楼: 在SQLSERVER中,你说的是对的,在ORACLE中就不对了其它用户在修改数据时,在修改前会将数据放到UNDO里,此时做SELECT查询,从UNDO中取数据 Oracle没有读锁,读不阻塞写,写也不会阻塞读. 使用"更新游标"的话,fetch后的当前行会被锁住,如果是这时候其它进程在对表进行修改操作,会阻塞,至于谁阻塞谁,我就搞不懂了如果是简单游标,应该不会阻塞,不过有可能,读到的数据是更新以前的. 如果是只读游标是没有问题的楼上已经说对了,oracle有undo来确保读一致和不阻塞另外sql server2000读是加锁的,从2005开始,可以修改隔离级别,获得oracle的读不阻塞的效果 read commited级别,不会有任何问题serializable或者read only级别会有问题 不会有问题的 但是如果你的写进程没有提交 读进程是看不到那些新做的修改的建议楼主去网上搜一下ORACLE一致性读也可以看看锁和隔离级别的相关内容 没问题,oracle的锁机制可不弱智 toad for oracle 中 想用调用一个存储过程 怎么弄啊,新手跪求 oracle 的job问题 oracle的client,db到底怎么回事? oracle XMLTYPE字段更新节点的问题,请高手指点一下? C#中用企业库读写oracle的blob类型数据的问题 问一个关于rowlock的问题 因目标主机或对象不存在,连接失败!!有解么? 关于instance,继续给大家送分 取当前存储过程名 分组排序!关于数据库分组排序的问题,把要点简化成下面一个例题,知道的一起讨论下 高分求教Oracle题目!! 关于oracle inser/update 的问题
游标查询的时候数据不一定存在 可能尚为commit 这样得出的结果就不是你想要的了
其它用户在修改数据时,在修改前会将数据放到UNDO里,此时做SELECT查询,从UNDO中取数据
如果是简单游标,应该不会阻塞,不过有可能,读到的数据是更新以前的.
楼上已经说对了,oracle有undo来确保读一致和不阻塞
另外sql server2000读是加锁的,从2005开始,可以修改隔离级别,获得oracle的读不阻塞的效果
serializable或者read only级别会有问题
建议楼主去网上搜一下
ORACLE一致性读
也可以看看锁和隔离级别的相关内容