ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Cursores SQL


Enviado por   •  4 de Julio de 2018  •  Apuntes  •  942 Palabras (4 Páginas)  •  136 Visitas

Página 1 de 4

CURSORES

En bases de datos, el término cursor se refiere a una estructura  producto de una consulta que se utiliza para recorrer renglón por renglón y eventualmente  dar algún procesamiento.

 

Un cursor se utiliza para el procesamiento individual de los renglones devueltos de una consulta por el Sistema Manejador de Base de Datos.

La creación y utilización de un cursor estará compuesta, como es de esperarse, por una serie de instrucciones, las cuales se separan en  grupos bien diferenciados, los cuales son:

  • Declaración del cursor - DECLARE
  • Apertura del cursor - OPEN
  • Acceso a datos del cursor – FETCH..INTO
  • Cierre del cursor - CLOSE
  • Desalojo de la memoria del cursor – DEALLOCATE

SINTAXIS GENERAL

-- Declaración del cursor

DECLARE <nombre_cursor> CURSOR 

FOR

<sentencia_sql>        

 

-- apertura del cursor

OPEN <nombre_cursor> 

 

-- Acceso a los datos

            -- Lectura de la primera fila del cursor

FETCH <nombre_cursor> INTO <lista_variables> WHILE (@@FETCH_STATUS = 0)

BEGIN

        

        -- Lectura de la siguiente fila de un cursor

FETCH <nombre_cursor> INTO <lista_variables>

END -- Fin del bucle WHILE

 

-- Cierra el cursor

        CLOSE <nombre_cursor>

-- Libera los recursos del cursor

        DEALLOCATE <nombre_cursor> 

-- Pasos previos para este ejemplo con la base de datos vista de control escolar

-- Declaración del cursor

DECLARE @BOL AS CHAR(10), @CVE_SEC AS CHAR(5), @CVE_MAT AS CHAR(4), @PRIMER AS INT, @SEGUNDO AS INT, @TERCER AS INT, @EXTRA AS INT, @PERIODO AS CHAR (20),  @PROMEDIO AS INT, @FINAL AS INT

DECLARE CUR_EJ_1 CURSOR 

FOR SELECT  BOLETA, PASO_CAL_SEM.CVE_SECUENCIA, PASO_CAL_SEM.CVE_UAP, PRIMER_DEP, SEGUNDO_DEP, TERCER_DEP, EXTRAORDINARIO, CVE_PERIODO

                 FROM PASO_CAL_SEM INNER JOIN GRUPO

                  ON PASO_CAL_SEM.CVE_SECUENCIA = GRUPO.CVE_SECUENCIA AND PASO_CAL_SEM.CVE_UAP = GRUPO.CVE_UAP

-- apertura del cursor

OPEN CUR_EJ_1

-- Acceso a los datos

        -- Lectura de la primera fila del cursor

FETCH NEXT FROM CUR_EJ_1 INTO        @BOL, @CVE_SEC, @CVE_MAT , @PRIMER , @SEGUNDO , @TERCER , @EXTRA , @PERIODO

WHILE @@FETCH_STATUS=0

                BEGIN

                        

                SET @PROMEDIO = (@PRIMER + @SEGUNDO + @TERCER) /3

                         

                 IF @PROMEDIO >= @EXTRA

...

Descargar como (para miembros actualizados) txt (4 Kb) pdf (130 Kb) docx (751 Kb)
Leer 3 páginas más »
Disponible sólo en Clubensayos.com