Cursores en PL/SQL

Introducción a cursores PL/SQL

   PL/SQL utiliza cursores para gestionar las instrucciones SELECT. Un cursor es un conjunto de registros devuelto por una instrucción SQL. Técnicamente 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.

   El siguiente ejemplo muestra la declaracion de un cursor con un parámetro, identificado por p_continente.


declare

cursor c_paises (p_continente IN VARCHAR2) is
SELECT
CO_PAIS, DESCRIPCION
FROM PAISES

WHERE CONTINENTE = p_continente;
begin
/* Sentencias del bloque ...*/
end;

   El siguiente diagrama representa como se procesa una instrucción SQL a través de un cursor.

 

Fases para procesar una instrucción SQL

 
  
Pedro  Herrarte  Sánchez
Cursores en PL/SQL
Pedro Herrarte Sánchez

Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación. Posee mas de diez años de experiencia trabajando para las principales empresas de España. Es especialista en tecnologías .NET, entornos Web (ASP.NET, ASP.NET MVC,jQuery, HTML5), bases de datos (SQL Server y ORACLE) e integración de sistemas. Es experto en desarrollo (C#, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE). Pedro es MCP y MAP 2012, es fundador, diseñador y programador de www.devjoker.com..
Fecha de alta:23/05/2006
Última actualizacion:23/05/2006
Visitas totales:465356
Valorar el contenido:
Últimas consultas realizadas en los foros
Últimas preguntas sin contestar en los foros de devjoker.com