create table test_for_cursor (
i number(3),
c varchar(50)
);
insert into test_for_cursor values (1, 'one');
insert into test_for_cursor values (10, 'ten');
insert into test_for_cursor values (5, 'five');
insert into test_for_cursor values (99, 'ninety-nine');
insert into test_for_cursor values (42, 'forty-two');
commit;
declare
cursor cur_test is
select i, c from test_for_cursor for update;
i number(3);
c varchar(50);
begin
open cur_test;
loop
fetch cur_test into i, c;
exit when cur_test%notfound;
if i>12 then
update test_for_cursor set i=i*2, c=upper(c) where current of cur_test;
end if;
end loop;
end;
/