Pregunta rápida sobre cursores (en particular cursores de Oracle).¿Los cursores de la base de datos recogen los cambios en los datos subyacentes?
Digamos que tengo una tabla llamada "mi_tabla" que tiene dos columnas, una ID y un nombre. Hay millones de filas, pero la columna de nombre siempre es la cadena 'prueba'.
luego ejecutar este 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;
/
si, si bien esto se está ejecutando, ejecute este SQL:
update my_table
set name = 'error'
where id = <max id>;
commit;
será el cursor en el bloque PL/SQL recoger que cambian e imprimen "error error error" y salen? o no recogerá el cambio ... ¿o incluso permitirá la actualización a mi_tabla?
gracias!
Tienes algún código, ¿por qué no lo ejecuta y ¿ver? –