Procedimientos y Funciones

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING.

MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS

CREACION DE PROCEDIMIENTOS ALMACENADOS EN UNA BASE DE DATOS ORACLE


I. Objetivos Crear e invocar procedimientos almacenados en una base de datos

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;

Lab. Administracin de Base de Datos (IS-443)

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

EJECUTAR PROCEDIMIENTOS ALMACENADO SIN PARMETROS BEGIN

Nombre_procedimiento_almacenado();

END;

ENTRADA Y SALIDA DE DATOS Para mostrar un valor por pantalla: DBMS_OUTPUT.PUT_LINE(cadena);

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.

EJECUTANDO EL RESULTADO: BEGIN BUSCAR_EMPLEADOS(); END;

Lab. Administracin de Base de Datos (IS-443)

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

%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

Lab. Administracin de Base de Datos (IS-443)

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

CREAR PROCEDIMIENTOS ALMACENADO CON PARMETROS

Cuerpo, instrucciones SQL; END;


La clusula opcional OR REPLACE permite sobrescribir un procedimiento existente. Si se omite y el procedimiento ya existe se producir un error. Argumento es el nombre de un parmetro del procedimiento. Los parmetros vlidos incluyen todos los tipos de datos. Sin embargo, para los tipos CHAR,VARCHAR2 Y NUMBER no deben de especificar longitud ni escala. Por ejemplo, el parmetro NUMBER(6) da un error de compilacin y debe ser reemplazado por NUMBER. Las clusulas IN, OUT, y IN OUT especifican el modo en que es utilizado el parmetro. Por defecto, los parmetros son de modo IN. IN significa que el parmetro puede estar referenciado dentro del cuerpo del procedimiento, pero no puede ser cambiado. OUT significa que al parmetro se le puede asignar un valor, pero el valor del parmetro no puede ser referenciado. IN OUT permite ambas cosas, asignar valores a los parmetros y referenciarlos. Normalmente basta con usar el modo por defecto (IN).

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.

Lab. Administracin de Base de Datos (IS-443)

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

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.

Lab. Administracin de Base de Datos (IS-443)

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

Ejecutando el procedimiento almacenado.


begin BUSCAR_EMPLEADOS(); end; salida:

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

Tarea para casa


Crear 5 procedimiento almacenados y 2 procedimientos almacenados utilizando cursores y a la vez con argumentos.

Lab. Administracin de Base de Datos (IS-443)

Prof. Elvira Fernndez

También podría gustarte