lunes, 8 de noviembre de 2010

CURSOR FOR UPDATE

Cuando lanzamos un cursor y queremos realizar un update de uno de los campos de este cursor,
podemos hacerlo realizando un update normal, solo que en este caso el costo del update sería relativamente grande, segun la consulta y los datos de almacenados en la tabla, del modo abajo indicado, nos ahorramos el paso de tener que buscar el dato a actualizar, ya que lo que hacemos es un puntero al registro actual del cursor.
(este sistema tiene un problema, el cursor permanecerá bloqueando la información durante el proceso de recorrido.)


DECLARE
  Cursor c1 SELECT *
                  FROM TABLA
                  FOR UPDATE CAMPOA

BEGIN
   FOR  var IN C1 LOOP
     IF cualquierCondicion THEN
         UPDATE TABLA
          SET CAMPOA='COR'
          WHERE CURRENT OF C1;
     END IF;
  END LOOP;
END;

No hay comentarios:

Publicar un comentario