Sei sulla pagina 1di 17

Sesin 16:

Desarrollo de Aplicaciones

Ing. Mario Traverzo Vila


Lima-2008

Desarrollo de Aplicaciones

Objetivos
Conocer el uso objetos PL/SQL
Implementar objetos PL/SQL

FIIS - Base de Datos


Ing. Mario T. Traverzo Vila

Desarrollo de Aplicaciones

Contenido
PL/SQL
Objetos PL/SQL
Funciones
Procedimientos
Paquetes
Especificacin del Paquete
Cuerpo del Paquete

Desencadenantes
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

Desarrollo de Aplicaciones

PL/SQL
PL/SQL ->Procedural Language extension to
SQL.
Es un extensin del SQL(basado en
sentencias) a un lenguaje basado en
procedimientos.
PL/SQL es un lenguaje de programacin de
Cuarta Generacin (4GL)
Soporta programacin orientada a objetos
(POO)
Portable y Seguro
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

Desarrollo de Aplicaciones

Objetos PL/SQL
Los Objetos de tipo PL/SQL son:
Procedimientos, bloque PL/SQL que realiza una accin
especifica.
Funciones, procedimiento que regresa un valor escalar.
Paquetes, coleccin de procedimientos y funciones
lgicamente relacionados.
Especificacin del paquete, declaracin de procedimientos y
funciones.
Cuerpo del Paquete, contiene el detalle de la implementacin
de los elementos del Paquete.

Desencadenantes, bloque PL/SQL que se ejecuta


cuando un registro es insertado, actualizado o
eliminado.
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

Desarrollo de Aplicaciones

Funciones
Generalmente usado para calcular valores,
debe tener la sentencia RETURN :
CREATE OR REPLACE FUNCTION
(sexo CHAR, talla NUMBER)
RETURN NUMBER AS
BEGIN
IF(sexo=V) THEN
RETURN talla*70/1.7;
ELSE
RETURN talla*60/1.7;
END IF;
END;
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

f_pesoIdeal

Desarrollo de Aplicaciones

Funciones
La funcin se podr usar como parte de
cualquier expresin, es decir en
sentencias donde se tienen expresiones,
alguna expresin o parte de esta puede
ser una funcin, por ejemplo:
SELECT f_pesoIdeal (M,1.56)
FROM dual;
SELECT Peso Ideal:||f_pesoIdeal
(M,1.56)
FROM dual;
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

Desarrollo de Aplicaciones

Procedimiento
Acepta parametros de entrada o salida
son ejecutados con la sentencia
EXECUTE:
CREATE
OR
REPLACE
PROCEDURE
p_holaMundo
IS
BEGIN
DBMS_OUTPUT.SET_LINE(Hola
Mundo!!!!);
DBMS_OUTPUT.SET_LINE(;-));
END;
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

Desarrollo de Aplicaciones

Procedimiento

Ejecutar el procedimiento:
EXECUTE p_holaMundo;
PL/SQL procedure successfully
complited.
SET SERVEROUTPUT ON;
EXECUTE p_holaMundo;
Hola Mundo!!!!
;-)
PL/SQL procedure successfully
complited.
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

Desarrollo de Aplicaciones

Paquete
Es una coleccin de funciones y
procedimientos esta compuesto de:
Especificacin
del
paquete
(PACKAGE):
contiene
solo
la
declaracin
(cabecera)
de
las
funciones o procedimientos.
Cuerpo del paquete (PACKAGE
BODY):
contiene
la
definicin
(contenido)
de las funciones y
procedimientos.
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

10

Desarrollo de Aplicaciones

Paquete

Creacin de un paquete:
CREATE OR REPLACE PACKAGE
MTTVP
As
FUNCTION
f_pesoIdeal(sexo
CHAR, talla NUMBER) RETURN
NUMBER;
PROCEDURE p_holaMundo;
END;
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

11

Desarrollo de Aplicaciones

Paquete
Creacin de un cuerpo paquete:
CREATE OR REPLACE PACKAGE BODY MTTVP
As
FUNCTION f_pesoIdeal (sexo CHAR, talla NUMBER)
RETURN NUMBER
AS
BEGIN
IF(sexo=V) THEN RETURN talla*70/1.7;ELSE
RETURN talla*60/1.7; END IF;
END;
PROCEDURE p_holaMundo IS
BEGIN
DBMS_OUTPUT.SET_LINE(Hola Mundo!!!!);
DBMS_OUTPUT.SET_LINE(;-));
END;
END;
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

12

Desarrollo de Aplicaciones

Paquete

Para ejecutar desde un paquete


se debe hacer referencia al
paquete y luego al nombre de
la funcin o procedimiento:
SELECT
MTTVP.f_pesoIdeal
(M,1.56)
FROM dual;
EXECUTE MTTVP.p_holaMundo;
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

13

Desarrollo de Aplicaciones

Paquetes
Oracle cuenta ya con
preconstruidos como:

paquetes

DBMS_STATS: manejar estadisticas


DBMS_OUTPUT: Salida estandar
DBMS_SESSION: Manejo de sesiones
DBMS_RANDOM: generar numeros aleatorios
DBMS_UTILITY: variadas funciones
DBMS_CRYPTO: encripta y desencripta data
UTL_FILE: maneja archivos del S.O.
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

14

Desarrollo de Aplicaciones

Desencadenantes
Su ejecucin no es por el usuario sino
por el DBMS ante los siguientes
eventos:
Tipo Evento
DML INSERT,UPDATE,DELETE
DDL CREATE,DROP,ALTER,GRANT,REVOKE,
RENAME
LOGON,LOGOFF,STARTUP,SHUTDOWN,
DB
SERVERERROR
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

15

Desarrollo de Aplicaciones

Desencadenantes
Creacin de un
(trigger) tipo DML:

desencadenante

CREATE OR REPLACE TRIGGER t_salhist


AFTER UPDATE OR INSERT ON empleado
FOR EACH ROW
BEGIN
IF(:NEW.sal<>NVL(:OLD.sal,-1))
THEN
INSERT
INTO
salhist
VALUES(:NEW.cod,:NEW.sal,SYSDATE);
END IF;
END;
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

16

Desarrollo de Aplicaciones

Desencadenantes
Creacin de un desencadenante
(trigger) tipo DB (Base de Datos):
CREATE
OR
REPLACE
TRIGGER
t_logon
AFTER
LOGON
ON
DATABASE
BEGIN
INSERT INTO sesiones VALUES
(USER,SYSDATE);
END;
FIIS - Base de Datos
Ing. Mario T. Traverzo Vila

17

Potrebbero piacerti anche