15. CURSORES

Embed Size (px)

Citation preview

  • 8/18/2019 15. CURSORES

    1/4

    CURSORES

    Los cursores son una herramienta de SQL que nos permite recorrer el

    resultado de una consulta SQL y realizar operaciones en cada paso de ésta.

    Un cursor es una variable que nos permite recorrer con un conjunto de

    resultados obtenido a través de una sentencia SELECT fila a fila.

    Se compone de las siguientes partes:

    • Conjunto de resultados del cursor: el conjunto (tabla) de filas que

    resulta de ejecutar una consulta asociada al cursor.

    • Posición del cursor: un puntero en una fila dentro del conjunto de

    resultados del cursor.

    Cuando trabajemos con cursores debemos seguir los siguientes pasos:

    • Declarar el cursor, utilizandoDECLARE

    • Abrir el cursor, utilizandoOPEN

    • Leer los datos del cursor, utilizandoFETCH ... INTO

    Cerrar el cursor, utilizandoCLOSE

    • Liberar el cursor, utilizandoDEALLOCATE

    SISTAXIS DE LOS CURSORES

    La sintaxis general de los cursores es la siguiente:

    -- Declaración del cursor

    Declaramos un cursor. Se especifica las filas y columnas que se van a

    recuperar

    DECLARE  CURSOR  

    FOR 

    -- Apertura del cursor

      Ing. Ana Doris M. Barrera Loza

     

  • 8/18/2019 15. CURSORES

    2/4

    OPEN  

    Este código sirve para abrir o activar un cursor. Al abrir el cursor se evalúa la

    consulta que aparece en su definición, utilizando los valores actuales decualquier parámetro referenciado en la consulta, para producir una colección

    de filas. El puntero se posiciona delante de la primera fila de datos (registro

    actual), esta sentencia no recupera ninguna fila.

     -- Lectura de la primera fila del cursor

    FETCH  INTO 

     WHILE (@@FETCH_STATUS = !

    BEGIN

    -- Lectura de la siguiente fila de un cursor

    FETCH  INTO 

    """ 

    END -- Fin del bucle WHILE

    Una vez abierto el cursor se utiliza la cláusula FETCH para recuperar las filas

    del cursor.

    Lista - variables son las variables que van a contener los datos recuperados de

    la fila del cursor, en la definición deben ir separadas por comas. En la lista de

     variables se deben definir tantas variables como columnas tenga la fila a

    recuperar.

    -- Cerrar el cursor

    Para cerrar un cursor se utiliza el comando CLOSE, este comando hace

    desaparecer el puntero sobre el registro actual

    CLOSE 

      Ing. Ana Doris M. Barrera Loza

     

  • 8/18/2019 15. CURSORES

    3/4

    -- Liberar los recursos del cursor (lo sacamos de la memoria)

    DEALLOCATE 

    Por ejemplo:

    Crear un cursor

    #EC$A%E Em&lo'ee_Cursor CU%S% F% SE$ECT $ast)ame* First)ame* Cit'

    F%+ Em&lo'ees,HE%E $ast)ame lie ./C-012.

    Abrir un cursor sin variables y recorrerlo

    3E) Em&lo'ee_Cursor

    FETCH )E4T F%+ Em&lo'ee_Cursor,H5$E @@FETCH_STATUS = 6E75) FETCH )E4T F%+ Em&lo'ee_CursorE)# 

    C$SE Em&lo'ee_Cursor

    #EA$$CATE Em&lo'ee_Cursor 

    Recorrer un cursor guardando los valores en variables

    #EC$A%E @com&_name nvarc8ar(9! #EC$A%E @cont_name nvarc8ar(:! 

    #EC$A%E cursor_cliente CU%S% F% SE$ECT com&an'name* contactname

    F%+ customers,HE%E com&an'name $5;E .C2. 

    %#E% 6 com&an'name* contactname

    3E) cursor_clienteFETCH )E4T F%+ cursor_cliente

    5)T @com&_name* @cont_name,H5$E @@FETCH_STATUS = 

    6E75) 3%5)T .Cliente .  @com&_name  .* .  @cont_nameFETCH )E4T F%+ cursor_cliente5)T @com&_name* @cont_nameE)# 

    C$SE cursor_cliente

    #EA$$CATE cursor_cliente

     

     Ing. Ana Doris M. Barrera Loza

     

  • 8/18/2019 15. CURSORES

    4/4

      Ing. Ana Doris M. Barrera Loza