You are on page 1of 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.
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

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:

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

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:

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

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 : juan@unsch.edu.pe. Despus
invocar tal procedimiento.

EJERCICIO 03:
crear un procedimiento almacenado que permita borrar las ocupaciones, segn
ocupacin indicada.

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

Lab. Administracin de Base de Datos


(IS-443)

Prof. Elvira Fernndez

You might also like