Cursores en PL/SQL

Hola a todos, hoy os voy a explicar como funcionan los cursores en PL/SQL.

Hasta ahora, si necesitamos recoger varios registramos de una consulta, con lo que sabemos ahora, no tenemos manera de guardar esos datos.

Esto lo podemos hacer con los cursores, estos se declaran como si fueran variables.

Se declaran así:

La idea del cursor es que almacena todas las filas que devuelva el select y cuando lo recorramos, ira devolviendo una a una cada de las filas que las iremos tratando.

Tenemos varias formas de recorrer nuestro cursor.

 

Tendremos que hacer lo siguiente para recoger los datos:

  • Abrir el cursor.
  • Recojo una fila.
  • Indico si sigue habiendo datos en el cursor, en el caso de no haya datos, sale del bucle.
  • Hago lo que tenga que hacer.
  • Cuando termine del bucle, cierro el cursor.

Lo podemos hacer con un loop:

Para saber si un cursor tiene o no mas datos, usaremos: clientes_cursor%notfound;

Devolverá true si no tiene nada.

Para recoger la siguiente fila a tratar, lo haremos con fetch, cuando no haya mas filas, no recogerá nada.

Para abrir un cursor, lo hacemos con open.

Para cerrar un cursor, lo hacemos con close.

 

O lo podemos hacer con un for:

Con los for,  hacemos todo lo que debemos hacer en un menos lineas, cuando salimos del for, el cursor se cierra solo.

Os dejo un un par de vídeos donde tratamos el tema:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539