Subido por alehdez2_06

SHCA P12

Anuncio
Universidad Nacional Autónoma de México
Ingeniería en Computación
Laboratorio de Bases de Datos
PRÁCTICA 12.
Fecha de realización: 6 de diciembre de 2022
Fecha de entrega: 11 de diciembre de 2022
INTRODUCCIÓN
PL/SQL es un lenguaje de programación desarrollado por Oracle como extensión de SQL. Ambos son
lenguajes de bases de datos relacionales, pero entre ellos existen varias diferencias.
SQL es un lenguaje de consulta estructurado con el que podemos manejar la información de una base
de datos, modificando esos datos, añadiendo o eliminando. Es un lenguaje declarativo. Cuando se
desea realizar una aplicación completa, para el manejo de una base de datos relacional, resulta
necesario utilizar alguna herramienta que soporte la capacidad de consulta del SQL y la versatilidad
de los lenguajes de programación tradicionales.
PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con
otro tipo de instrucciones y elementos propios de los lenguajes de programación.
Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:
●
●
●
●
●
Procedimientos almacenados: es un subprograma que ejecuta una acción específica y que no
devuelve ningún valor por si mismo, como sucede con las funciones.
Funciones:
Cursores: permiten recorrer fila a fila, leer y eventualmente modificar dicho conjunto de
resultados
Triggers
Scripts
OBJETIVO
El alumno tendrá un primer acercamiento con el lenguaje de programación PL/SQL aprendiendo el
uso de bloques anónimos,disparadores, cursores y procedimientos.
Imagen 1
Imagen 2
Imagen 3
Imagen 4
Imagen 5
--Con esto podemos consultar dicha info a partir de cualquier id
Imagen 6
Imagen 7
–Si no podemos una línea en blanco, queda pegado al margen
Imagen 8
–Aquí se observa que efectivamente se ha guardado el procedimiento
–El bloque anónimo no se guarda, el procedimiento sí
Imagen 9
Imagen 10
–Los disparadores trabajan de manera automática
–Operaciones con las cuales se dispara: INSERT, DELETE, UPDATE
–Los eventos pueden ser BEFORE o AFTER
Imagen 11
Imagen 12
Imagen 13
Imagen 14
Imagen 15
Podemos observar que con FECTH, al funcionar como apuntador y C_ANALSIS_SHCA al funcionar
como arreglo, se irán guardando múltiples filas.
Imagen 16
Aquí la variable TODO nos trae todo lo relacionado a dicho ID y PLACA
Imagen 13
RESULTADOS
Imagen 15
Imagen 16
DECLARE
V_ID NUMBER(4);
V_PLACA_BASE VARCHAR2(20);
V_VENDEDOR VARCHAR2(20):='&VENDEDOR';
V_IDEN NUMBER(4);
V_PLACAS VARCHAR2(20);
V_VENDEDORES VARCHAR2(20):='&VENDEDORES';
CURSOR C1 IS
SELECT ID,PLACA_BASE FROM EQUIPO_SHCA
WHERE VENDEDOR = V_VENDEDOR;
CURSOR C2 IS
SELECT IDEN,PLACAS FROM EQUIPOS
WHERE VENDEDORES = V_VENDEDORES;
BEGIN
OPEN C1;
LOOP
FETCH C1 INTO V_ID,V_PLACA_BASE;
DBMS_OUTPUT.put_line('EL ID: '||V_ID);
DBMS_OUTPUT.put_line('eSTA RELACIONADO CON LA PLACA:' ||V_PLACA_BASE);
EXIT WHEN C1%NOTFOUND;
END LOOP;
OPEN C2;
LOOP
FETCH C2 INTO V_IDEN,V_PLACAS;
DBMS_OUTPUT.put_line('EL ID: '||V_IDEN);
DBMS_OUTPUT.put_line('eSTA RELACIONADO CON LA PLACA:' ||V_PLACAS);
EXIT WHEN C2%NOTFOUND;
END LOOP;
CLOSE C2;
DBMS_OUTPUT.put_line('PROCESO CONCLUIDO');
END;
Imagen 17
Imagen 18
Imagen 19
Aquí podemos observar que se creó una segunda tabla para poder realizar cursores anidados que me
brinden info tanto de la tabla A como B.
CONCLUSIÓN
Esta práctica me sirvió como una introducción a la programación PL/SQL, ya que aprendí muy por
encima el concepto y uso de procedimientos, disparadores, cursores, bloques anónimos. Por ejemplo,
los bloques anónimos nos permitirán realizar pruebas de nuestra base de datos, pues estos no se
guardarán, en cambio los procedimientos si lo harán. Para el caso de los disparadores, estos se
activarán de manera automática al ejecutarse alguna acción como insertar, borrar o actualizar, y por
último los cursores podrán ir recorriendo fila por fila teniendo la oportunidad de poder realizar alguna
acción sobre de ellas de una por una sin necesidad de hacerlo manualmente.
REFERENCIAS CONSULTADAS
MICROSOFT. “PL/SQL”. Consultado el 11 de diciembre del 2022. Recuperado en
https://learn.microsoft.com/es-es/sql/t-sql/language-elements/declare-cursor-transact-sql?view=sql-ser
ver-ver16
Baúl del programador “PL/SQL: FUNCIONES” Consultado el 11 de diciembre del 2022. Recuperado
en https://elbauldelprogramador.com/plsql-procedimientos-y-funciones/
KRAPP DARIO “CURSORES” Consultado el 11 de diciembre del 2022. Recuperado en :
https://www.programandoamedianoche.com/2009/11/cursores-en-sql-server/
ÍNDICE DE IMÁGENES
INTRODUCCIÓN………………………………………………………………1
OBJETIVO………………………………………………………………………1
DESARROLLO…………………………………………………………………2
Imagen 1…………………………………………………………………2
Imagen 2-4………………………………………………………………3
Imagen 5-6………………………………………………………………4
Imagen 7…………………………………………………………………5
Imagen 8-9………………………………………………………………6
Imagen 10-11……………………………………………………………7
Imagen 12……………………………………………………………….8
Imagen 13-14……………………………………………………………9
RESULTADOS…………………………………………………………………10
Imagen 15 …………………………………………………………….10
Imagen 16……………………………………………………………..11
Imagen 17-19…………………………………………………………13
CONCLUSIÓN………………………………………………..……………….14
REFERENCIAS CONSULTADAS…………………………..……………….14
Descargar