Practica 12 - 13
Practica 12 - 13
Practica 12 - 13
FACULTAD DE INGENIERÍA
Semestre: 2020-1
Bases de datos
PRACTICA 12-13. Introducción a la programación SQL
PL/SQL
Objetivo:
El alumno comprenderá los principales conceptos, así como la estructura básica para
realizar la construcción de scripts SQL empleando las extensiones de programación SQL
ofrecidas por los manejadores. Aplicará los conceptos referentes a disparadores para
reflejar la integridad de la información y hará uso de funciones creadas por el usuario.
Pondrá en práctica los conceptos básicos de programación procedural en la construcción de
procedimientos almacenados y cursores
Introducción
El lenguaje que se emplea para programar varía de un Sistema Manejador de Bases de
Datos Relacional (RDBMS) a otro, este lenguaje de programación se usa para acceder y
trabajar con bases de datos en desde distintos entornos.
Los operadores son los mismos que para SQL: aritméticos, lógicos, concatenación, y
paréntesis.
DECLARE
CURSOR MICURSOR IS <QUERY>;
BEGIN
OPEN MICURSOR;
FETCH MICURSOR INTO VARIABLES_PLSQL
CLOSE MICURSOR;
END;
/
Manipulación de Excepciones
Frente a errores de ejecución que no manejadas automáticamente nuestro
código terminará con error. Podemos manejar los errores y hacer un trabajo
respectivo frente a un problema esperado o no esperado.
Sintaxis:
EXCEPTION
WHEN ERROR THEN
<ACCION>
Los tipos de errores ya existen algunos pre establecidos por Oracle Database (20
aproximadamente) pero no cubren todos los escenarios. Lo mejor es definir
nuestros propios errores.
DECLARE
E1 EXCEPTION;
PRAGMA EXCEPTION_INIT(E1,#_ERROR);
BEGIN
EXCEPTION
WHEN E1 THEN
<ACCION>
END;
Disparadores.
Los disparadores no pueden contener órdenes SQL de control de transacciones
(COMMIT, ROLLBACK o SAVEPOINT) y ningún procedimiento o función llamado por el
disparador puede emitir órdenes de control de transacciones. Para crear un disparador
se usa el comando CREATE TRIGGER.
Una definición de disparador incluye las siguientes partes únicas:
Una lista de sentencias de disparador, incluyendo INSERT, UPDATE y/o DELETE, que
llama el disparador. Un disparador está asociado con una y sólo una tabla.
Un disparador puede configurarse para que se ejecute antes o después de realizarse una
acción sobre la tabla asociada, para mantener la lógica de la aplicación.
Sintaxis:
CREATE OR REPLACE TRIGGER <NOMBRE_TRIGGER>
INSTEAD OF|BEFORE|AFTER
INSERT|DELETE|UPDATE OF <COLUMNAS>
ON <TABLA>
FOR EACH ROW
WHEN <CONDICION>
DECLARE
BEGIN
<CODIGO>
END;
/
Un cursor es un área de memoria utilizada para realizar operaciones con los registros
devueltos tras ejecutar una sentencia SELECT. Existen dos tipos:
Implícitos
Explícitos
Sintaxis:
CREATE OR REPLACE PROCEDURE <NOMBRE_PROCEDURE> (PARAMETROS) IS
<DEFINICION_VARIABLES>
BEGIN
<CODIGO_PLSQL>
END;
/
Funciones.
Una función al igual que los procedimientos, su código se guarda en la base
de datos y tiene como función realizar un cálculo y devolver un valor.
Sintaxis:
CREATE OR REPLACE FUNCTION <NOMBRE_FUNCTION> (PARAMETROS)
RETURN <TIPO_DATO>
IS
<DEFINICION_VARIABLES>
BEGIN
<CODIGO_PLSQL>
END;
/
2. Cree un bloque anónimo con manejo de una excepción cuando se requiera obtener
una lista de préstamos (La excepción se lanzará cuando no se tenga un préstamo).
6. Conclusiones
Una práctica donde vemos excepciones para tratar alguno errores tales como que no
se encuentre o no exista un dato también disparadores para ejecutar alguna acción
dependiendo de una inserción o actualización aunado a procedimientos para crear
funciones de propósito especifico lo único a destacar es que no se especifica se
mediante teclado podamos acceder directamente a los campos a modificar o
simplemente dar algunos por default fuera de ello una práctica interesante siendo que
no se dio una clase formal de ello.