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

Cursores explicitos


Enviado por   •  19 de Junio de 2018  •  Documentos de Investigación  •  606 Palabras (3 Páginas)  •  136 Visitas

Página 1 de 3

Procesando queries usando cursores explicitos

Tipos de Cursores:

Cursores implicitos:

Cada sentencia SQL ejecutada en la base de datos tiene asociado un cursor para ejecutarse, estos cursores “Automaticos” se les llama implicitos y son usados por el DBMS para todo DML y sentencias SELECT.

Cursores Explicitos:

Son declarados y nombrados por el programador y manipulados por medio de una o varias sentencias especificas dentro de un bloque PL/SQL.

Funciones de los cursores explicitos:

Pueden procesar mas alla de la primera fila retornada por un query, fila por fila.

Mantienen el registro de cual fila esta actualmente siendo procesada.

Permiten al programador controlarlos manualmente dentro de un bloque PL/SQL.

Controlando cursores explicitos

[pic 1]

  1. Declarar el cursor

Declara el cursor en el area de declaracion de variables del bloque PL/SQL (declare...) poniendole nombre y declarando el query que sera realizado por el cursor.

  1. Abrir el cursor

La sentencia OPEN ejecuta el query y trae los valores a variables del “Area privada de SQL” para ser referenciadas. Las filas identificadas por el query son llamados “Conjunto Activo”  y son las filas o tuplas listas o disponibles para traer.

  1. Traer datos desde el cursor

La sentencia FETCH carga la fila actual desde el cursor  hacia variables. Cada FETCH causa que el cursor mueva su puntero hacia la siguiente fila en el “Conjunto Activo” por tanto, cada Fetch accesa a una fila diferente retornada por el query del cursor.

En el diagrama de flujo de arriba despues de cada fetch verifica la existencia de más filas. Si la fila es encontrada la carga en las variables del conjunto activo, si no cierra el cursor.

  1. Cerrar el cursor

La sentencia CLOSE suelta o libera el “Conjunto Activo” de filas.


Declarando el cursor:

Sintaxis:

CURSOR nombre_del_cursor IS

  Sentencia Select;

Ejemplo:

Declare

V_ord_id number(7);

CURSOR item_cursor IS

   SELECT product_id, price * quentity

   FROM    s_item

   WHERE  ord_id = v_ord_id;

Begin

..........

End;

Abrir el cursor:

Sintaxis:

OPEN nombre_del_cursor;

Trayendo datos del Cursor (Apuntando o haciendo FETCH):

FETCH nombre_del_cursor INTO variable1, variable2, . . .;

Cerrando el cursor:

CLOSE nombre_del_cursor;

Atributos de un cursor explicito:

%ISOPEN

Atributo boleano que evalua en Verdadero (TRUE) si el cursor esta abierto.

%NOTFOUND

Atributo boleano que evalua en Verdadero (TRUE) si el mas reciente FETCH no retorno ninguna fila.

%FOUND

Atributo boleano que evalua en Verdadero (TRUE) hasta que el más reciente FETCH no retorne una fila, es complemento de %NOTFOUND

%ROWCOUNT

Atributo numerico que evalua el numero total de filas retornadas.

...

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