viernes, 24 de mayo de 2013

Cursores en Oracle



Un cursor según la RAE es:

Cursor: m. inform. Indicador que se desplaza sobre la pantalla para indicar una posición.

Existen 2 tipos de cursores, los implícitos y los explícitos, cada uno con uno con diferente función, ya que uno solo trae un registro y el otros puede traer 2 o mas registros respectivamente.

Los  atributos de un cursor son:
·         %rowcount: cantidad de registros.
·         %found: encontró datos.
·         %notfound: no encontró datos.                                      Estos 3 son booleanos
·         %isopen: indica que el cursor esta abierto.

Hay 3 maneras de realizar un cursor
1.      Ciclo FOR: Interacción de 2 o mas objetos, persona-computador.
2.     OPEN, FETCH, CLOSE: Abre, obtiene y cierra el cursor.
3.     REF Cursor: Tipo de dato del valor del cursor.

Ejemplos:

Ciclo FOR
declare
  cursor nombre_cursor is
    select campo1, campo2
    from tabla;
begin
    for v_lit in nombre_cursor loop
    dbms_output.put_line ('campo1:'||v_lit.campo1||'campo2:'||v_lit.campo2);
  end loop;
end;

--La variable solo sirve dentro del ciclo FOR.

OPEN, FETCH, CLOSE
declare
  cursor nombre_cursor is
  select campo1, campo2
  from tabla;
 v_lit cur%rowtype;
 begin
  open nombre_cursor;
  loop
  fetch nombre_cursor into v_lit;
  exit when nombre_cursor%notfound;
dbms_output.put_line ('campo1:'||v_lit.campo1||'campo2:'||v_lit. campo2);
  end loop;
  close nombre_cursor;
end;


No hay comentarios:

Publicar un comentario