Sei sulla pagina 1di 22

SEMINARIO PL - SQL

Gustavo Castao Soto


Docente medio tiempo Email: gcastano1205@gmail.com

sbado, 05 de octubre de 2013

Agenda
Cursores Implcitos Cursores Explcitos Cursores Parmetros

Espacio para reproducir el ttulo de la presentacin que va en la portada

Cursores
Todas las sentencias SQL ejecutadas por el servidor de Oracle tienen un cursor individual asociado: 1. Cursores implcitos: Se declaran y se gestionan por PL/SQL para todas las sentencias SELECT DML y PL/SQL 2. Cursores explcitos: Se declaran y se gestionan por el programador

Cursores Implcitos
Declarados implcitamente para todas las sentencias del DML y SELECT de PL/SQL, consultas que devuelven una sola fila Con cada cursor implcito debe existir la palabra clave INTO. Las variables que reciben los datos devueltos por el cursor tienen que contener el mismo tipo de dato que las columnas de la tabla. Los cursores implcitos solo pueden devolver una nica fila. En caso de que se devuelva ms de una fila (o ninguna fila) se producir una excepcin. Una excepcin es el medio por el que PL/SQL gestiona los errores.

Cursores Implcitos
Los cursores implcitos slo pueden devolver una fila, por lo que pueden producirse determinadas excepciones. Las ms comunes que se pueden encontrar son NO_DATA_FOUND Y TOO_MANY_ROWS. La siguiente tabla explica brevemente estas excepciones.

Cursores Explcitos
Declarados y nombrados por el programador. Manipulados por sentencias especificas en las instrucciones ejecutables del bloque. Se usan para consultas que devuelven ms de 1 fila

Cursores Explcitos
Control de Cursores Explcitos 1. 2. 3. 4. Declarar el cursor. Abrir el cursor con la instruccin OPEN. Leer los datos del cursor con la instruccin FETCH. Cerrar el cursor y liberar los recursos con la instruccin CLOSE.

Cursores Explcitos
Sintaxis Declarar Cursores Explcitos

Cursores Explcitos
Apertura Cursores Explcitos

OPEN nombre_cursor;
1. Al abrir el cursor se ejecuta realmente la consulta. 2. Si la consulta no devuelve ninguna fila no se producir ninguna EXCEPTION. 3. Hay que utilizar los atributos del cursor para comprobar los resultados obtenidos tras una recuperacin.

Cursores Explcitos
Recuperar Datos Cursores Explcitos FETCH nombre_cursor INTO [var1,var2,] | nom_registro; 1. Recuperar la fila actual e introducir los valores en las variables de salida. 2. Incluir el mismo n de variables. 3. Relacionar posicionalmente variables y columnas. 4. Comprobar si el cursor tiene filas

Cursores Explcitos
Cerrar Cursores Explcitos

CLOSE nombre_cursor;
1. Desactiva el cursor y libera la memoria reservada. 2. Cerrar cursor tras el procesamiento de las filas. 3. Volver a abrir el cursor si fuese necesario. Hay un mximo nmero de cursores que pueden estar abiertos a la vez en la BD. 4. No se pueden recuperar datos del cursor una vez cerrado.

Cursores Explcitos
Cerrar Cursores Explcitos

CLOSE nombre_cursor;
1. Desactiva el cursor y libera la memoria reservada. 2. Cerrar cursor tras el procesamiento de las filas. 3. Volver a abrir el cursor si fuese necesario. Hay un mximo nmero de cursores que pueden estar abiertos a la vez en la BD. 4. No se pueden recuperar datos del cursor una vez cerrado.

Cursores Explcitos
Ejemplo Cursores Explcitos (LOOP) .

Cursores Explcitos
Atributos de los Cursores Explcitos Toman los valores TRUE, FALSE o NULL dependiendo de la situacin: .

Cursores Explcitos
Atributos de los Cursores Explcitos (OPEN)

Cursores Explcitos
Cursores Explcitos (Variables de registro)

Cursores Explcitos
Cursores Explcitos (Ciclos FOR) 1. Apertura, recuperacin y cierre implcitos. 2. La variable registro se declara implcitamente .

Cursores Explcitos
Cursores Explcitos (Ejemplo Ciclos FOR) .

Cursores Explcitos
Ciclos FOR de Cursor Mediante Subconsultas. No es necesario declarar el cursor

Cursores Explcitos
Cursores Parmetros. Se pueden especificar parmetros para los cursores de la misma forma que se pasan a procedimientos y/o funciones. Permite abrir un cursor varias veces con un conjunto de valores distintos cada vez. Cada parmetro formal de la declaracin del cursor debe tener un parmetro real correspondiente en la sentencia OPEN.

Cursores Explcitos
Sintaxis Cursores Parmetros.
DECLARE CURSOR nombreCursor (para1 tipodato, para2 tipodato, ) IS SENTENCIA_SQL;

Colocar los parametros del cursor en el WHERE de la SENTENCIA_SQL:


.

Cursores Explcitos
Ejemplo Cursores Parmetros.

Potrebbero piacerti anche