可能重复:
Oracle 在同一事务期间访问更新的记录
我有一个有点像这样的 Oracle 存储过程(实际的 sql 不同)
CREATE OR REPLACE PROCEDURE mysp
IS
v_copied_row table%ROWTYPE ;
CURSOR p_copied_rows IS
select *
from table ;
BEGIN
delete from table
where <some condition>
OPEN p_copied_rows ;
LOOP
FETCH p_copied_rows into v_copied_rows ;
<do something with fetched row>
END LOOP
close p_copied_rows;
END;
理想情况下,我期望删除的行不应该是我从游标中获取的结果集的一部分,但那些是。
我是甲骨文的新手,想了解我是否在这里做错了什么?
PS 我必须将游标用于一些复杂的事情,所以用 SQL 替换游标不是一种选择。