Domanda rapida sui cursori (in particolare i cursori Oracle).I cursori del database raccolgono le modifiche ai dati sottostanti?
Diciamo che ho una tabella chiamata "my_table", che ha due colonne, un ID e un nome. Ci sono milioni di righe, ma la colonna del nome è sempre la stringa 'test'.
Ho poi eseguire questo script 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;
/
se io, mentre questo è in funzione, eseguire questo SQL:
update my_table
set name = 'error'
where id = <max id>;
commit;
sarà il cursore nel blocco PL/SQL raccogliere che modifica e stampa "errore errore errore" e uscire? o non prenderà affatto il cambiamento ... o permetterà anche l'aggiornamento a my_table?
grazie!
Hai un codice, perché non lo si esegue e vedere? –