Practica 02 Pl SQL Procedimientos

January 31, 2019 | Author: Hayde Huamani | Category: Pl/Sql, Sql, Programming Language, Oracle Corporation, Databases
Share Embed Donate


Short Description

sql...

Description

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

I. OBJETIV OBJ ETIVOS OS  



II.

Entender el concepto de programación con PL/SQL. Crear e invocar procedimientos almacenados en una base de datos Oracle. Utilizar los procedimientos almacenados para facilitar consultas en SQL Developer

MARCO TEÓRICO Programación con PL/SQL

Introducción SQL es un lenguaje de consulta para los sistemas de bases de datos relaciónales, pero que no posee la potencia de los lenguajes de programación. No permite el uso de variables, estructuras de control de flujo, bucles, etc. y demás elementos característicos de la programación. No es de extrañar, SQL es un lenguaje de consulta, no un lenguaje de programación. PL/SQL  PL/SQL  es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los lenguajes de programación. Es el lenguaje de programación de 4ta generación para base de datos Oracle.

Bloques PL/SQL Un programa de PL/SQL está compuesto por bloques. Un programa está compuesto como mínimo de un bloque. Los bloques de PL/SQL pueden ser de los siguientes tipos: Lab. Administración de Base de Datos (IS-443)

1

Prof. Elvira Fernández

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS • •

Bloques anónimos Subprogramas

anónimo  es básicamente aquel que el código fuente reside en el Un código anónimo es lado cliente y un subprograma subprograma reside  reside el código fuente en el servidor. Con PL/SQL vamos a poder programar Los Subprogramas de la base de datos ORACLE, están son: Procedimientos almacenados Funciones Triggers Paquetes    

Estructura de un Bloque Los bloques PL/SQL presentan una estructura específica compuesta de tres partes bien diferenciadas: •





declarativa   en donde se declaran todas las constantes y La sección declarativa  variables que se van a utilizar en la ejecución del bloque. ejecución  que incluye las instrucciones a ejecutar en el La sección de ejecución que bloque PL/SQL. excepciones   en donde se definen los manejadores de La sección de excepciones  errores que soportará el bloque PL/SQL.

Lab. Administración de Base de Datos (IS-443)

2

Prof. Elvira Fernández

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

PROCEDIMIENTOS ALMACENADOS Un procedimiento almacenado es un bloque de instrucciones SQL con un nombre determinado. determinado. Un procedimiento almacenado es un procedimiento cuyo código se guarda en la base de datos y tiene como objeto realizar una acción específica. 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.

III.

DESARROLLO CREAR UN PROCEDIMIENTO ALMACENADO EN UNA BASE DE DATOS ORACLE

La sintaxis para crear un procedimiento almacenado depende si van a recibir o no parámetros: CREAR PROCEDIMIENTOS ALMACENADO SIN PARÁMETROS CREATE PROCEDURE 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 almacenado con la siguiente sintaxis

puede

crear

el

procedimiento

CREATE [OR CREATE [ OR REPLACE] PROCEDURE  PROCEDURE  Nombre_procedimiento IS/AS IS/AS BEGIN Instrucciones SQL;  END;

EJECUTAR PROCEDIMIENTOS ALMACENADO SIN PARÁMETROS BEGIN Nombre_procedimiento_almacenado(); END;

ENTRADA Y SALIDA DE DATOS Para mostrar un valor por pantalla: Lab. Administración de Base de Datos (IS-443)

3

Prof. Elvira Fernández

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

DBMS_OUTPUT.PUT_LINE(cadena); DBMS_OUTPUT es un depurador de Oracle que sirve para visualizar cualquier cosa, pero antes lo debemos tener activado (en SQL*plus, se activa con el comando SET SERVEROUTPUT ON):

EJEMPLO 01.- Cree un procedimiento almacenado que permita mostrar los datos generales generales del empleado empleado y el salario salario que percibe, cuyo cuyo código es 198 de la tabla empleados.

EJECUTANDO EL RESULTADO: BEGIN BUSCAR_EMPLEADOS(); END;

%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 Lab. Administración de Base de Datos (IS-443)

4

Prof. Elvira Fernández

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

cambia el tipo del campo, se cambia en forma automática el tipo de la variable. Sintaxis Variable tabla.Campo% Type

El

código

de

ALL_SOURCE.

un

procedimiento

se

puede

verificar

en

la

vista

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 función f unción o procedimiento. TYPE Los diferentes tipos de subprogramas. Realmente,

LINE TEXT

aparte de funciones y procedimientos, se puede observar el código de los diferentes tipos: PACKAGE, PACKAGE BODY, PROCEDURE, TYPE, TYPE BODY Número de la línea del código contenido de código que está en la presente línea

CREAR PROCEDIMIEN PROCEDIMIENTOS TOS ALMACENADO AL MACENADO CON PARÁMETROS P ARÁMETROS CREATE [ OR REPLACE]  [IN|OUT|IN OUT ]  , PROCEDURE   [(  [  [IN|OUT|IN OUT ]  ,   [ IS

...)]

-- Declaracion de variables locales BEGIN

-- Sentencias [EXCEPTION ] -- Sentencias control de excepcion END [ ];

La cláusula 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 parámetro del procedimiento. Los parámetros válidos incluyen todos los tipos de datos. Sin embargo, para los tipos CHAR,VARCHAR2 Y NUMBER   no deben de especificar longitud ni escala. escala . Por ejemplo, el parámetro NUMBER(6) da un error de compilación y debe ser reemplazado por NUMBER.

Lab. Administración de Base de Datos (IS-443)

5

Prof. Elvira Fernández

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

Las cláusulas IN, OUT, y IN OUT especifican el modo en que es utilizado el parámetro. Por defecto, los parámetros son de modo IN. IN  significa que el parámetro puede estar referenciado dentro del cuerpo del procedimiento, pero no puede ser cambiado. OUT  significa que al parámetro se le puede asignar un valor, pero el valor del parámetro no puede ser referenciado. IN OUT permite ambas cosas, asignar valores a los parámetros 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_EM BUSCAR_EMPLEADOS, PLEADOS, modificar y crear un procedimiento almacenado con parámetro, es decir que muestre el empleado según su código especificado.

ACCESO A UN BASE DE DATOS El acceso a la información 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 información en un cursor se devuelve y maneja como un conjunto de registros. Existen dos tipos de cursores: Lab. Administración de Base de Datos (IS-443)

6

Prof. Elvira Fernández

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS  

Cursores implícitos Cursores explícitos

Cursores implícitos Este tipo de cursor es generado y gestionado por el mismo Oracle y se utiliza para operaciones Select into . Su característica principal es que solo devuelve un registro.

Cursores explícitos 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 instrucción SQL Leer todos los registros del cursor Para leer todos los registros de un cursor debe crear un bucle utilizando la instrucción For In.

LA INSTRUCCIÓN 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 automática de tipo cursor y almacena los datos leídos del cursor para poder manejarlos manejarlos dentro del bucle.

Cursor Es el nombre del cursor declarado anteriormente.

Ejemplo03.   Crear un procedimiento almacenado que permita mostrar los datos de los empleados y su respectiv respectivo o salario. Para ello utilizar cursores.

Lab. Administración de Base de Datos (IS-443)

7

Prof. Elvira Fernández

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

Ejecutando el procedimiento almacenado. begin BUSCAR_EMPLEADOS(); end; salida:

EJERCICIOS PROPUESTOS Lab. Administración de Base de Datos (IS-443)

8

Prof. Elvira Fernández

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

Ejercio01: Crear un procedimiento almacenado en el esquema oe, que genere la lista de productos de la tabla PRODUCT_INFORMATION. Mostrar el código_producto, nombre del producto, lista de precios y el minimo precio, según el código del producto ingresad0 .

Salida

Esquema hr

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 nuevas ocupaciones a la tabla Jobs y luego mostrar los registros agregados.

Ejercicio 04:

Crear un procedimiento procedimiento almacenado almacenado que que permita actualizar actualizar los emails de los empleados según su codigo, con el domino corporat corporativo ivo ejemplo :  [email protected].  juan@unsch .edu.pe. Después  Después invocar tal procedimiento.

Ejercicio 05:

crear un procedimiento almacenado localizaciones, según la ciudad indicada. Lab. Administración de Base de Datos (IS-443)

9

que

permita

borrar

las

Prof. Elvira Fernández

UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL ESCUELA DE FORMACIÓN PROFESIONAL DE INGENIERIA DE SISTEMAS

Ejercicio 06:

Crear un procedimiento almacenado que permita aumentar los salarios máximo y minimo en un porcentaje indicado, según la ocupación que corresponda.

EJERCICIO 07: Crear un procedimiento almacenado para mostrar los empleados con sus respectivas ocupaciones , departamentos y salarios.

tarea para casa Crear 3 procedimiento almacenados. 1 procedimeinto que reciba paremetros y 2 utilizando cursores(una sin parametros y otro que reciba parámetros) trabajar con el esquema HR.

Lab. Administración de Base de Datos (IS-443)

10

Prof. Elvira Fernández

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF