Mantenimiento de una tabla en Oracle con Java y JSP – 06/15 – Crear un SP con un cursor como parametro de salida.

Capa BD
01. Crear una BD en Oracle.
02. Crear una Tabla con clave primaria.
03. Crear un secuenciador.
04. Implementar sentencias para mantenimiento de la tabla.
05. Crear un package en la BD.
06. Crear un SP con un cursor como parametro de salida.
07. Crear un SP para devolver nombres similares de un campo.

Applicacion Web
08. Crear Un proyecto Web en Java.

Capa modelo
09. Crear Una clase Entidad (una clase simple).
10. Obtener una Conexión hacia la BD.
11. Crear un Statement simple.
12. Crear un PreparedStatement con parametros.
13. Crear un CallableStatement con un cursor como parametro de salida.

Capa Controlador
14. Crear un Servlet Controlador.

Capa Vista
15. Crear una pagina JSP con un formulario.

Anexos
01. Cadena de conexión.
02. Interface connection.
03. Clase OracleDataSource.
04. SQLException.
05. try – catch.
06. RequestDispatcher.

Crear un SP con un cursor como parametro de salida

Preparación:


El procedimiento es parecido al usado para la creacion del paquete .
Vamos a usar un paquete y dentro un procedimiento almacenado con un tipo de dato cursor que se usara para referenciar al Set de Resultado.
El usuario con el que creemos el procedimiento debe tener los privilegios CREATE PROCEDURE y EXECUTE sobre ese paquete.

Como se hace

En SQL Developer

Clic derecho en el paquete missps ->Edit
Se abrira una ventanana en la que agregaremos este codigo :

CREATE OR REPLACE
PACKAGE missps IS
type vCursor is REF CURSOR;

procedure selectLinea (
idln in linea.IDLINEA%TYPE,
vUserCursor out vCursor
);

END missps ;

Luego dar clic “Guardar”. No en el boton “Run”, porque estas declaraciones no se ejecutan.
Despues desplegar el paquete missps y dar clic derecho -> Create Body
Aparecera una pantalla con este codigo :

CREATE OR REPLACE
PACKAGE BODY missps AS

END missps ;

Procederemos a modificarlo para que quede asi :

CREATE OR REPLACE
PACKAGE BODY missps IS

procedure selectLinea
(
idln in Linea.idLinea%TYPE,
vUserCursor out vCursor
)
is
begin
        open vUserCursor for select * from linea where idLinea = idln;
end selectLinea
END missps ;

Luego dar clic “Guardar”. Tambien se puede usar el boton “Run”, para que se guarde y ejecute el paquete.

Resultado

Si se produce algun error o warning , se mostrara en la ventana Compiler-Log en la parte inferior.
Si se uso el boton “Run”, en la ventana inferior Running – Log se mostrara el mensaje del proceso de ejecucion.

Como funciona :


En este paquete estamos creando:
– un type(tipo de dato) vCursor.
– un procedimiento selectLinea.

El cursor es la variable que referenciara al Set de resultado que produzca el procedimiento selectLinea.
En el procedimiento se crea dos parametros :
– un parametro de entrada (in) idlnde tipo IDLINEA%TYPE.
– un parametro de salida (out) vUserCursorde tipo vCursor.

IDLINEA%TYPE es una estructura que nos evita el tener que acordarnos el tipo de dato exacto que definimos para un campo, se puede haber escrito idln in integer.

El tipo vCursor debido a su naturaleza ha tenido que ser creado en la parte de las declaraciones de variables.
Solo de esa forma sera accesible dentro del procedimiento selectLinea.

En el cuerpo del paquete hemos implementado el procedimiento almacenado declarado en la especificacion.
Aqui el procedimiento accede al tipo vCursor declarado en la especificacion del paquete.
Como ya se comento en el paso anterior este cursor declarado como de salida, hara referencia al Set de Resultado devuelto por el procedimiento.

Este Set de Resultado sera transportado por el vCursor con la sentencia :

        open vUserCursor for select * from linea where idLinea = idln;

que abre el cursor para hacer referencia al resultado de la sentencia Select.

Hay mas


Podemos a la vez declarar nuevas variables, pero que solo podran ser accesibles desde dentro de los procedimientos implementados aqui.

Ver tambien


http://albertovilches.com/pl_sql_oracle_desde_java

Anuncios

Un comentario en “Mantenimiento de una tabla en Oracle con Java y JSP – 06/15 – Crear un SP con un cursor como parametro de salida.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s