Cursores de actualización
Declaración y utiización de cursores de actualización.
Los cursores de actualización se declarán igual que los cursores explicitos, añadieno FOR UPDATE al final de la sentencia select.
CURSOR nombre_cursor IS
instrucción_SELECT FOR UPDATE
|
Para actualizar los datos del cursor hay que ejecutar una sentencia UPDATE especificando la clausula WHERE CURRENT OF <cursor_name>.
UPDATE <nombre_tabla> SET <campo_1> = <valor_1> [,<campo_2> = <valor_2>] WHERE CURRENT OF <cursor_name>
|
El siguiente ejemplo muestra el uso de un cursor de actualización:
DECLARE CURSOR cpaises IS select CO_PAIS, DESCRIPCION, CONTINENTE from paises FOR UPDATE; co_pais VARCHAR2(3); descripcion VARCHAR2(50); continente VARCHAR2(25); BEGIN OPEN cpaises; FETCH cpaises INTO co_pais,descripcion,continente; WHILE cpaises%found LOOP UPDATE PAISES SET CONTINENTE = CONTINENTE || '.' WHERE CURRENT OF cpaises;
FETCH cpaises INTO co_pais,descripcion,continente; END LOOP; CLOSE cpaises; COMMIT;
END;
|
Cuando trabajamos con cursores de actualización debemos tener en cuenta las siguientes consideraciones:
- Los cursores de actualización generan bloqueos en la base de datos.