关于游标(特别是Oracle游标)的一个问题。
假设我有一张名为“my_table”的表,它有两列,一个ID和一个名称。这个表有数百万行,但是名称列总是字符串“test”。
然后我运行这个PL/SQL脚本:
declare
cursor cur is
select t.id, t.name
from my_table t
order by 1;
begin
for cur_row in cur loop
if (cur_row.name = 'test') then
dbms_output.put_line('everything is fine!');
else
dbms_output.put_line('error error error!!!!!');
exit;
end if;
end loop;
end;
/
如果我在程序运行时执行以下SQL语句:
update my_table
set name = 'error'
where id = <max id>;
commit;
PL/SQL块中的光标是否会捕捉到该更改并打印出“错误错误错误”并退出?还是根本不会捕捉到更改...或者甚至允许更新my_table?
谢谢!