Sei sulla pagina 1di 8

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

FACULTAD DE INGENIERÍA

PRACTICA 12-13. Introducción a la programación SQL PL/SQL

Alumno: Saldivar Juárez Ramses

Profesor: Ing. Carlos Raul Tlahuel Perez


Bases de datos
GRUPO: 2
Fecha de realización: 3/12/2019
Fecha de Entrega: 4/12/2019

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.

Se crean subprogramas también llamados función, procedimiento o disparador.

Dentro del lenguaje de programación se puede hacer uso de funciones numéricas, de


carácter, de fecha, de conversión de tipos de datos, excepto de agrupamiento (ya que
éstas se aplican sobre una columna de una tabla)

Los operadores son los mismos que para SQL: aritméticos, lógicos, concatenación, y
paréntesis.

También se utilizan estructuras de control, éstas permiten elegir la forma en la que se


van a ejecutar las diferentes instrucciones dentro del programa. Las más importantes
son las estructuras condicionales y las estructuras de repetición también llamadas ciclos.

Un disparador de base de datos es un procedimiento almacenado que se asocia con una


tabla específica y que es llamado cuando un evento particular ocurre como una
inserción, borrado o actualización. Se pueden usar disparadores para personalizar la
reacción de un servidor de la base de datos. Los disparadores suelen utilizarse para
restricciones de integridad complejas, auditoría de la información de una tabla o aviso a

Ing. Carlos Raúl Tlahuel Perez Página | 1


Semestre 2020-1
Bases de datos
PRACTICA 12-13. Introducción a la programación SQL
PL/SQL
otros programas para ejecutar una acción. Además, tienen la restricción de que no
pueden manejar parámetros ni ser llamados directamente.
Manejo de Cursores
Cada sentencia SQL que es ejecutada en la base de datos siempre tiene asociado un cursor.
Los cursores son definidos en el PGA (Memoria privada por cada server process).
Los cursores pueden ser definidios por Oracle de forma explícita o implícita.
Implícita significa que Oracle Database es responsable de crear el cursor, abrirlo recorrerlo
y cerrarlo. De forma explícita nosotros somos responsables de las
actividades mencionadas.
El control de un cursor se define en el siguiente gráfico:
Sintaxis:

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.

Ing. Carlos Raúl Tlahuel Perez Página | 2


Semestre 2020-1
Bases de datos
PRACTICA 12-13. Introducción a la programación SQL
PL/SQL
Sintaxis:

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

Ing. Carlos Raúl Tlahuel Perez Página | 3


Semestre 2020-1
Bases de datos
PRACTICA 12-13. Introducción a la programación SQL
PL/SQL
Procedimientos.
Un procedimiento almacenado es un conjunto de comandos de SQL que pueden ser
compilados y almacenados en el servidor. Una vez realizado esto, los clientes no
necesitan volver a teclear todas las instrucciones sino únicamente hacer referencia al
procedimiento. Esto mejora el rendimiento del servidor, ya que la instrucción de SQL
solamente es revisada una sola vez y menos información debe ser enviada entre el
cliente y el servidor. Los procedimientos son llamados también subprogramas.

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

Ing. Carlos Raúl Tlahuel Perez Página | 4


Semestre 2020-1
Bases de datos
PRACTICA 12-13. Introducción a la programación SQL
PL/SQL
Actividades a realizar:
Con base en los esquemas utilizados desde la practica 9, realice lo siguiente:
1. Cree un cursor explicito que obtenga la relación (Numero de Trabajador, Nombre de
trabajador, Préstamo, Sueldo).

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

Ing. Carlos Raúl Tlahuel Perez Página | 5


Semestre 2020-1
Bases de datos
PRACTICA 12-13. Introducción a la programación SQL
PL/SQL
3. Cree una función que calcule los intereses de un préstamo, considere una tasa de
interés del 5% anual.

4. Cree un disparador que al momento de insertar un nuevo préstamo regrese un


mensaje con la cantidad que deberá pagar considerando el internes anual del 5%.

Ing. Carlos Raúl Tlahuel Perez Página | 6


Semestre 2020-1
Bases de datos
PRACTICA 12-13. Introducción a la programación SQL
PL/SQL

5. Cree un procedimiento para generar un nuevo 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.

Ing. Carlos Raúl Tlahuel Perez Página | 7


Semestre 2020-1

Potrebbero piacerti anche