|
|
最初由 zjzcz 发布
[B]能不能说明一下,比如某用户在创建了某时间段数据(insert)然后select 这部分符合他的数据,然后另外一个用户在前一个用户的insert期间也开始创建另外一时间段的数据(insert)然后他select符合他的数据,关于这两个用户的操作,oracle是如何处理的呢?
[/B]
未提交的事务对于别人是不可见的。没有提交的时候,A用户只能看到A用户插入的数据,B用户只能看到B用户插入的数据。这应该是数据库基本的事务性要求,我不相信Sybase没有。
Oracle特别的地方是:语句级的读连贯性(Statement-Level Read Consistency)。查询语句开始后,增删改数据不会影响查询结果。简言之,查询的结果总是返回查询开始那一刻的数据状态。你的假设:‘如果用固定的表,一个在查询,另外一个就不允许DML这张表’在Oracle数据库上不成立。
你应该先好好读读oracle文档,不要将你在Sybase上的开发经验照搬过来。tahiti.oracle.com上可以下载所有oracle数据库文档,建议你从Oracle Concepts这本书开始。 |
|