Practica 03 Procedimientos

8
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS Lab. Administración de Base de Datos 1 Prof. Elvira Fernández (IS-443) 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 TEÓRICO 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 generación, compartiendo muchas de sus propiedades. CREAR UN PROCEDIMIENTO ALMACENADO La sintaxis para crear un procedimiento almacenado depende si van a recibir o no parámetros: CREAR PROCEDIMIENTOS ALMACENADO SIN PARÁMETROS 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;

description

Creacion de procedimientos alamcenados

Transcript of Practica 03 Procedimientos

  • UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administracin de Base de Datos 1 Prof. Elvira Fernndez (IS-443)

    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;

  • UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administracin de Base de Datos 2 Prof. Elvira Fernndez (IS-443)

    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;

  • UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administracin de Base de Datos 3 Prof. Elvira Fernndez (IS-443)

    %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.

    Nota: 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

    Lab. Administracin de Base de Datos 4 Prof. Elvira Fernndez (IS-443)

    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

    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

    Lab. Administracin de Base de Datos 5 Prof. Elvira Fernndez (IS-443)

    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:

    ACCESO A UNA 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. 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. Declara una variable para manejar el cursor. 2. Abre el cursor

  • UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administracin de Base de Datos 6 Prof. Elvira Fernndez (IS-443)

    3. Lee todos los datos del cursor registro por registro. 4. 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.

    Ejecutando el procedimiento almacenado.

    begin BUSCAR_EMPLEADOS();

    end;

    salida:

  • UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administracin de Base de Datos 7 Prof. Elvira Fernndez (IS-443)

    EJERCICIOS PROPUESTOS

    EJERCICIO 01 :

    Crear un procedimiento que permita agregar CIUDADES a la tabla Ciudades.

    EJERCICIO 02:

    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 03:

    crear un procedimiento almacenado que permita borrar las ocupaciones, segn

    ocupacin indicada.

  • UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL

    ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS

    Lab. Administracin de Base de Datos 8 Prof. Elvira Fernndez (IS-443)

    EJERCICIO 04: Crear un procedimiento almacenado que permita aumentar los salarios en un porcentaje indicado, segn la ocupacin que corresponda.

    EJERCICIO 05:

    Crear un procedimiento almacenado para mostrar los empleados con sus respectivas

    ocupaciones , departamentos y salarios.

    Tarea para casa Trabajar con el esquema OE. Crear 5 procedimiento almacenados y 2

    procedimientos almacenados utilizando cursores y a la vez con argumentos. Imprimir en

    pantalla los resultados