Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Desarrollo de Aplicaciones
Desarrollo de Aplicaciones
Objetivos
Conocer el uso objetos PL/SQL
Implementar objetos PL/SQL
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.
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
13
Desarrollo de Aplicaciones
Paquetes
Oracle cuenta ya con
preconstruidos como:
paquetes
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
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