Procedimientos y Funciones
Procedimientos y Funciones
Procedimientos y Funciones
Oracle. Utilizar los procedimientos almacenados para facilitar consultas en SQL Developer
II.
MARCO TERICO
PROCEDIMIENTOS ALMACENADOS Un procedimiento almacenado es un bloque de instrucciones SQL con un nombre determinado. PL/SQL proporciona un lenguaje sofisticado para construir procedimientos, se comportan igualmente, como los procedimientos en otros lenguajes de tercera generacin, compartiendo muchas de sus propiedades. CREAR UN PROCEDIMIENTO ALMACENADO La sintaxis para crear un procedimiento almacenado depende si van a recibir o no parmetros:
CREAR PROCEDIMIENTOS ALMACENADO SIN PARMETROS CREATE PROCEDURE Nombre_procedimiento AS/IS BEGIN Instrucciones SQL; END;
Si el nombre del procedimiento almacenado que desea crear ya existe, se visualiza el siguiente mensaje de error.
Para evitar este tipo de errores puede crear el procedimiento almacenado con la siguiente sintaxis
CREATE OR REPLACE PROCEDURE Nombre_procedimiento AS BEGIN Instrucciones SQL; END;
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS
Nombre_procedimiento_almacenado();
END;
EJEMPLO 01.- Cree un procedimiento almacenado que permita mostrar los datos generales del empleado y el salario que percibe, cuyo cdigo es 198 de la tabla empleados.
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS
%type Este atributo se utiliza para definir las variables del mismo tipo que est definido el campo de una tabla teniendo como ventaja que si se cambia el tipo del campo, se cambia en forma automtica el tipo de la variable. Sintaxis Variable tabla.Campo% Type
%Rowtype
Este atributo se utiliza para definir una variable con la misma estructura de una tabla teniendo como ventaja que si se realiza algn cambio en la estructura automticamente tambin se cambia en la variable Sintaxis Variable tabla%RowType
Ejercio01: Crear un procedimiento almacenado en el esquema OE, que genere la lista de precios de UN PRODUCTO indicado. Mostrar nombre del producto y lista de precio. El cdigo de un procedimiento se puede verificar en la vista ALL_SOURCE.
EJEMPLO: SQL> Select text from all_source where name = BUSCAR_EMPLEADOS;
Entonces la vista ALL_SOURCE tiene 5 campos: CAMPOS DESCRIPCION OWNER Propietario de la funcin o procedimiento. TYPE Los diferentes tipos de subprogramas. Realmente, aparte de funciones y procedimientos, se puede observar el cdigo de los diferentes tipos: PACKAGE, PACKAGE BODY, PROCEDURE, TYPE, TYPE BODY LINE Nmero de la lnea del cdigo TEXT contenido de cdigo que est en la presente lnea
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS
Eliminar procedimiento
Un procedimiento puede ser borrado respectivamente con los comandos DROP PROCEDURE <nombre de procedimiento> Ejemplo 02: Del ejemplo anterior BUSCAR_EMPLEADOS, modificar y crear un procedimiento almacenado con parmetro, es decir que muestre el empleado segn su cdigo especificado.
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS
EJERCICIO 02 : Crear un procedimiento almacenado que permita mostrar el directorio de un empleado, es decir su nombre, apellidos en una sola fila, su telefono y el nombre del departamento al que pertenece. Buscar al empleado por codigo.
Salida:
EJERCICIO 03 : Crear un procedimiento que permita agregar CIUDADES a la tabla Ciudades. Ejercicio 04: Crear un procedimiento almacenado que permita actualizar los emails de los empleados segn su codigo, con el domino corporativo ejemplo : [email protected]. Despus invocar tal procedimiento. Ejercicio 05: crear un procedimiento almacenado que permita borrar las ocupaciones, segn ocupacin indicada. Ejercicio 06:
Crear un procedimiento almacenado que permita aumentar los salarios en un porcentaje indicado, segn la ocupacin que corresponda.
ACCESO A UN BASE DE DATOS El acceso a la informacin de una base de datos mediante instrucciones PL/SQL se realiza mediante cursores. Un cursor es una zona de memoria que se reserva para procesar los resultados de una consulta select. La informacin en un cursor se devuelve y maneja como un conjunto de registros. Existen dos tipos de cursores: Cursores implcitos Cursores explcitos Cursores implcitos Este tipo de cursor es generado y gestionado por el mismo Oracle y se utiliza para operaciones Select into. Su caracterstica principal es que solo devuelve un registro. Lab. Administracin de Base de Datos (IS-443) 5 Prof. Elvira Fernndez
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS
Cursores explcitos Este tipo de cursor es generado y gestionado por el mismo programador y puede devolver N registros. La sintaxis para declarar un cursor es la siguiente: Cursor nombre Is instruccin SQL Leer todos los registros del cursor Para leer todos los registros de un cursor debe crear un bucle utilizando la instruccin For In. LA INSTRUCCIN for In cumple con las siguientes funciones en un cursor: 1. 2. 3. 4. Declara una variable para manejar el cursor. Abre el cursor Lee todos los datos del cursor registro por registro. Cierra el cursor
La sintaxis es la siguiente: For Variable In Cursor Loop End Loop; Donde: Variable Es una variable que se declara en forma automtica de tipo cursor y almacena los datos ledos del cursor para poder manejarlos dentro del bucle. Cursor Es el nombre del cursor declarado anteriormente. Ejemplo. Crear un procedimiento almacenado que permita mostrar los datos de los empleados y su respectivo salario. Para ello utilizar cursores.
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS
EJERCICIO 07: Crear un procedimiento almacenado para mostrar los empleados con sus respectivas ocupaciones , departamentos y salarios.
Lab. Administracin de Base de Datos (IS-443) 7 Prof. Elvira Fernndez
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS