Guía de Aplicación Nro 03 Procedimientos Almacenados
Guía de Aplicación Nro 03 Procedimientos Almacenados
Guía de Aplicación Nro 03 Procedimientos Almacenados
COMPETENCIAS A CONSEGUIR
Utilizar sentencias SQL(SELECT,UPDATE,INSERT DELETE) Utilizar el lenguaje de Programacin PL/SQL(Control Condicional,Ciclos) Utilizar funciones del gestor SGBD(ORACLE)
3.
REQUISITOS
Tener experiencia de uso del Entorno Oracle Express Edition Tener conocimiento del uso de Sentencias de lenguaje de Manipulacin de Datos (DML) Tener experiencia en el uso de creacin de scripts a travs de las sentencias SQL.
4.
BASES TERICAS Definicin: Un procedimiento almacenado (stored procedure) es un grupo de sentencias SQL que es compilado una vez, y luego puede ser ejecutado muchas veces. Los procedimientos almacenados se almacenan en la base de datos y constituyen los servicios que ofrece la base de datos (Cliente/Servidor). Los procedimientos almacenados cuando se ejecutan no tienen que ser recompilados cada vez, este hecho hace que sean muy eficientes. Los procedimientos almacenados se almacenan en la base de datos y constituyen los servicios que ofrece la base de datos.
SINTAXIS:
CREATE OR REPLACE PROCEDURE [esquema].nombre-procedim (nombre-parmetro {IN, OUT, IN OUT} tipo de dato, ..) {IS, AS} Declaracin de variables; Declaracin de constantes; Declaracin de cursores; BEGIN Cuerpo del subprograma PL/SQL; EXCEPTION Bloque de excepciones PL/SQL; END;, IN OUT} tipo de dato, ..) {IS Nota: bloque de cdigo de PL/SQL, compuesto por cuatro secciones DECLARE, BEGIN, EXCEPTION y END
UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERA PROGRAMA ACADMICO PROFESIONAL DE INGENIERA DE SISTEMAS
SISTEMAS DE BASE DE DATOS I - SEM 2011-I
A. PROCEMIENTOS ALMACENADOS SIN PARAMETROS: Ejemplo 01: Crear el P.A. ultimomovimiento, la asignacin de valores a una variable de registro llamada tOperacion_reg, que va a contener la estructura de una fila de la tabla Toperacion y que estar formada por todos los campos correspondientes a la tabla. Para esto usaremos el atributo de variable %ROWTYPE que declara una variable de registro que contiene la estructura de la tabla, y despus, con el uso de la sentencia SELECT * INTO, se asigna a la variable de registro los valores de la fila. La referencia a un dato contenido en la variable de registro se hace de la forma variable_registro.campo, como por ejemplo toperacion_reg.fechahoraoperacion hace referencia a la fecha de la ultima opereracion den el banco del cliente.
CREATE OR REPLACE PROCEDURE ultimomovimiento AS DECLARE tOperacion_reg Toperacion%ROWTYPE; BEGIN SELECT * INTO tOperacion_reg FROM Toperacion WHERE codOperacion='Ope001'; IF toperacion_reg.fechahoraoperacion>sysdate-10 THEN message( tOperacion_reg.fechahoraoperacion||' La ultima operacion fue realizada ltimos 10 das'); pause; ELSE message( tOperacion_reg.fechahoraoperacion||' La ultima operacion que realizo fue hace ms de 10 das'); pause; END IF; END; END ultimomovimiento;
UNIVERSIDAD ANDINA DEL CUSCO FACULTAD DE INGENIERA PROGRAMA ACADMICO PROFESIONAL DE INGENIERA DE SISTEMAS
SISTEMAS DE BASE DE DATOS I - SEM 2011-I WHEN TOO_MANY_ROWS THEN SELECT COUNT(*) INTO XVENTAS FROM ventas WHERE ventas.fecha=sysdate AND articulo=xarticulo; message( TO_CHAR(xventas) ' Ventas de 'xarticulo); pause; WHEN OTHERS THEN message('Error Indefinido'); pause; END; END;
Este procedimiento ventasde recibe un parmetro que es el nombre del artculo a consultar, por lo cual, para ejecutarlo, se debe escribir ventasde('PAPEL'). Obsrvese tambin que la sentencia SELECT COUNT(*) INTO, usada en este ejemplo, siempre devuelve una fila, ya que no existe formacin de grupos al no estar presente la orden GROUP BY. Por lo tanto, en este caso la nica accin posible a realizar es pasar a la siguiente sentencia, o sea, no se requiere control de excepciones. Llamar al procemiento a travs de:
execute dbms.ventasde(xarticulo;ventas.articulo%TYPE)
5. EJERCICIOS PROPUESTOS: Crear un procedimiento almacenado que permita ver el reporte de ventas del da el ltimo viernes del mes.
6.
PROCESO DE EVALUACIN Desarrollar los scripts de cada uno de los tipos de funciones Realizacin del Paquete de Requerimientos Realizacin del Paquete de Valorizacin