Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FASE 3 - IMPLEMENTACIÓN
PARTICIPANTES:
CC: 1.105.614.452 – LUIS EDUARDO OBANDO BONILLA
CC: 1.106.790.804 - ALEJANDRO GARZÓN CUELLAR
CC: XXXX - NOMBRE ESTUDIATNE 3
CC: XXXX - NOMBRE ESTUDIATNE 4
CC: 1.117.511.542 - CARLOS MAURICIO VARGAS CICERI
GRUPO No. 24
Tutor:
MARIANO ESTEBAN ROMERO
Objetivo General
Conocer e implementar en casos prácticos los significados, sintaxis y
utilidad de procedimientos almacenados, disparadores y cursores.
Objetivos Específicos
Consultar el significado de que son los procedimientos almacenados
así como dar ejemplos prácticos de los mismos.
Consultar el significado de que son los triggers o disparadores así
como dar ejemplos prácticos de los mismos.
Consultar el significado de que son los cursores y sus ejemplos
prácticos
RESULTADO
Comentario: …….
Autor del comentario:
Nombre Estudiante 2: Alejandro Garzón Cuellar
Pregunta 2: ¿Qué se conoce como procedimiento almacenado y cuál
es su principal función?
Respuesta:
Un procedimiento almacenado es un conjunto de instrucciones T-SQL
compiladas por
SQL Server en un único plan de ejecución. El llamado
"procedimiento almacenado" se
almacena en la base de datos y se puede ejecutar en cualquier
momento.
Cuando un procedimiento almacenado se ejecuta por primera vez,
su plan de ejecución
se creará y almacenará en la memoria, y luego SQL usará el plan de
ejecución cuando
vuelva a llamar al procedimiento sin tener que volver a compilarlo.
Es ejecutado directamente en el motor de bases de datos, el cual
usualmente corre en un
servidor separado. Como tal, posee acceso directo a los datos que
necesita manipular y
sólo necesita enviar sus resultados de regreso al usuario.
El proceso puede ser beneficioso: cuando se manipula la base de
datos desde muchos
programas externos. Al utilizar procedimientos almacenados para
incluir la lógica de la
aplicación en la base de datos, puede reducir la necesidad de
incrustar la misma lógica
en todos los programas que acceden a los datos.
Funciones y características
Los procedimientos almacenados se utilizan para agrupar sentencias
T-SQL y cualquier
lógica asociada necesaria para realizar tareas.
Puede utilizar los siguientes cuatro métodos para crear un
procedimiento almacenado:
Transact-SQL (T-SQL).
Administrador empresarial de SQL Server.
Asistente para la creación de procedimientos almacenados.
Objeto de administración distribuida SQL
Comentario: Como solución al punto 3 de la guía de actividades me
permito realizar breve pero significativo complemento a contribuir
con la solución a la pregunta del compañero Alejandro Garzon:
Respuesta:
Los cursores son estructuras de control que se usan para recuperar y
procesar filas de una relación en una de determinada consulta. Estos
examinan desde un lenguaje de programación la colección de filas
resueltas por lo general en un SELECT hecho a través del lenguaje
SQL en determinado sistema gestor de base de datos.
Antes de poder ser utilizado el cursor debe ser abierto por medio de
la sentencia OPEN, luego este se posiciona en el set de resultados
con la sentencia FETCH y al final se cierra con la sentencia CLOSE.
Comentario:
Como solución al punto 3 de la guía de actividades me permito
realizar breve complemento a contribuir con la solución a la
pregunta del compañeros Luis Eduardo:
Comentario: …….
Autor del comentario:
Nombre Estudiante 5: Carlos Mauricio Vargas Ciceri
Pregunta 5: ¿Qué se conoce como lenguaje PL/SQL y cuál es su
diferencia del lenguaje SQL?
Respuesta:
SQL es el estándar del lenguaje aceptado por la ISO y ANSI, la mayoría si no todos los
motores relacionales de base de datos usan SQL.
El motor de Oracle usa SQL, PL\SQL es una extensión del lenguaje SQL desarrollado
por Oracle para poder hacer cosas que el estándar no puede realizar.
Este caso también aplica para el motor SQL de Microsoft, Microsoft SQL server
utiliza SQL y su extensión desarrollada por Microsoft, llamada T-SQL (Transact-
SQL). Los demás motores de SQL si no la mayoría cuentan con una pequeña extensión
del lenguaje SQL desarrollada por la empresa que desarrollan el motor.
Comentario: …….
Autor del comentario:
2. Activador o Disparadores
Nombre del estudiante 1: Luis Eduardo Obando Bonilla
Código: El trigger permitirá tener control cada que se elimine un una
tabla de nuestra base de datos:
1. Creamos una tabla en la que llevaremos el control:
Resultado de la consulta:
Nombre del estudiante 2: Alejandro Garzon Cuellar
Código:
CREATE OR REPLACE TRIGGER MI_PT_UNAD
BEFORE
INSERT
ON NOMINA_2
BEGIN
SELECT MI_P_SEQ1.NEXTVAL
INTO :NEW.EMPLOYEE_ID
FROM DUAL;
END;
SELECT
EMPLOYEE_ID,
FIRST_NAME,
LAST_NAME,
SALARY
FROM
UNAD_NAL_134.NOMINA_2;
Resultado de la consulta:
Resultado de la consulta:
Nombre del estudiante 4: Elimine el texto y escriba el nombre
Código:
Resultado de la consulta:
DECLARE
V_FK NUMBER;
BEGIN
V_FK:= SEQ1.NEXTVAL;
DBMS_OUTPUT.PUT_LINE(V_FK);
END;
--CREAR TRIGGER
--CONSULTAR LA TABLA
SELECT
EMPLOYEE_ID,
FIRST_NAME,
LAST_NAME,
SALARY
FROM
UNAD_NAL_135.NOMINA_2;
Resultado de la consulta:
3. Procedimientos Almacenados
Nombre del estudiante 1: Luis Eduardo Obando Bonilla
CREATE OR REPLACE PROCEDURE PROCEDIMIENTO_UNAD
AS
--declare --declaramos las variables donde irán los datos de la
consulta para el algoritmo
quincena number (10.2);
nombre varchar (30);
apellido varchar (30);
salario varchar (30);
anualidad varchar (30);
begin
--colocamos las sentencias
select FIRST_NAME, LAST_NAME, SALARY
into nombre, apellido, salario
from IBO.EMPLOYEES
where EMPLOYEE_ID = 100;
--ahora programamos:
quincena:= salario/2;
anualidad:= salario*12;
DBMS_OUTPUT.PUT_LINE (nombre || ' '||apellido||' '||'Tiene un
salario mensual de '|| salario);
DBMS_OUTPUT.PUT_LINE ('La quincena es:' || ' ' || quincena);--
paraquete para imprimir el resultado
DBMS_OUTPUT.PUT_LINE ('La anualidad es:' || ' ' || anualidad);
end;
EXECUTE PROCEDIMIENTO_UNAD
Resultado de la consulta:
-------------------
SELECT HIRE_DATE
FROM IBO.EMPOYEES
WHERE EMPLOYEE_ID = 120
-----------------------
SELECT EMPLOYEE_ID, FIRST_NAME, LAS_NAME, SALARY,
PP_TF_134 (EMPLOYEE_ID), HIRE_DATE
FROM IBO.EMPOYEES
Resultado de la consulta:
Resultado de la consulta:
Resultado de la consulta:
-- Sentencias SQL
SELECT FIRST_NAME,LAST_NAME,SALARY
INTO V_NOMBRE,V_APELLIDO,V_SALARIO
FROM IBO.EMPLOYEES
WHERE EMPLOYEE_ID = 100;
V_QUINCENA := V_SALARIO/2;
-- Imprimimos
Resultado de la consulta:
4. Cursores
Nombre del estudiante 1: Elimine el texto y escriba el nombre
Código: En este caso el cursor se ubicará y devolverá según la
función si es 1 en el nombre del empleado, y sino se irá hacia el dato
de la tabla departamento:
ELSE
OPEN C1 FOR SELECT * FROM IBO.DEPARTMENTS;
FETCH C1 INTO DEPARTAMENTOS;
RETURN DEPARTAMENTOS.DEPARTMENT_NAME;
END IF;
END;
END;
SET SERVEROUTPUT ON
DECLARE
DATOS PAQ1.C_VARIABLE;
BEGIN
DBMS_OUTPUT.PUT_LINE(PAQ1.DEVOLVER_DATOS(DATOS,100));
END;
DECLARE
DATOS PAQ1.C_VARIABLE;
BEGIN
DBMS_OUTPUT.PUT_LINE(PAQ1.DEVOLVER_DATOS(DATOS,2));
END;
Resultado de la consulta:
Si es el id 100
Sino es el id 100
Resultado de la consulta:
Resultado de la consulta:
Resultado de la consulta:
--CURSORES
EXECUTE NOMINA_EMPLEADOS;
DECLARE
CURSOR C1 IS
SELECT EMPLOYEE_ID, FIRST_NAME FROM NOMINA_2;
--DECLARAR VARIALBLES
BEGIN
OPEN C1;
LOOP
FETCH C1 INTO V_ID, V_NOMBRE;
-- IMPRIMIMOS
Resultado de la consulta:
5. Evidencias de la participación en el foro
Se espera que cada estudiante presente las evidencias de su
participación en el foro con relación al Desarrollo Unidad 2 - Fase 3 -
Implementación, al igual que comentarios significativos a los aportes
de los demás compañeros del grupo.