Datos personales

Estudiantes de la Universidad Tecnologica Fidel Velázquez inscritos en el tercer cuatrimestre(2011/2). En la area de Sistemas Informáticos

lunes, 8 de agosto de 2011

CURSORES


 PL/SQL utiliza cursores para gestionar las instrucciones SELECT. Un cursor es un conjunto de registros devuelto por una instrucción SQL. Únicamente los cursores son fragmentos de memoria que reservados para procesar los resultados de una consulta SELECT.  
   Podemos distinguir dos tipos de cursores:
  • Cursores implicitos. Este tipo de cursores se utiliza para operaciones SELECT INTO. Se usan cuando la consulta devuelve un único registro.
  • Cursores explicitos. Son los cursores que son declarados y controlados por el programador. Se utilizan cuando la consulta devuelve un conjunto de registros. Ocasionalmente también se utilizan en consultas que devuelven un único registro por razones de eficiencia. Son más rápidos.
   Un cursor se define como cualquier otra variable de PL/SQL y debe nombrarse de acuerdo a los mismos convenios que cualquier otra variable. Los cursores implicitos no necesitan declaración.



 El siguiente ejemplo declara un cursor explicito:


declare 
  cursor c_paises is
  SELECT CO_PAIS, DESCRIPCION
  FROM PAISES;
begin/* Sentencias del bloque ...*/
end;
  Para procesar instrucciones SELECT que devuelvan más de una fila, son necesarios cursores explicitos combinados con un estructura de bloque.

   Un cursor admite el uso de parámetros. Los parámetros deben declararse junto con el cursor.
Los cursores implicitos se utilizan para realizar consultas SELECT que devuelven un único registro.
   Deben tenerse en cuenta los siguientes puntos cuando se utilizan cursores implicitos:
  • Con cada cursor implicito debe existir la palabra clave INTO.
  • Las variables que reciben los datos devueltos por el cursor tienen que contener el mismo tipo de dato que las columnas de la tabla.
  • Los cursores implicitos solo pueden devolver una única fila. En caso de que se devuelva más de una fila (o ninguna fila) se producirá una excepcion. No se preocupe si aún no sabe que es una excepcion, le valdrá conocer que es el medio por el que PL/SQL gestiona los errores.
   El siguiente ejemplo muestra un cursor implicito:


declare
vdescripcion VARCHAR2(50);
begin       SELECT DESCRIPCION 
       INTO vdescripcion
       from PAISES
       WHERE CO_PAIS = 'ESP';
       
       dbms_output.put_line('La lectura del cursor es: ' || vdescripcion);

end;
 

No hay comentarios:

Publicar un comentario