Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Duración: 90 minutos
Instrucciones:
● Se recomienda mantener la correcta redacción y orden.
1. Elabore una Funcion (FN) que permita calcular la edad de un empleado, considerar el campo
HR.EMPLOYEES.HIRE_DATE como la Fecha de Nacimiento. (5 ptos.)
Script SQL
--PRIMERO EN EL ESQUEMA HR
GRANT select, insert, update, delete ON hr.employees TO ysaac;
--EJECUTAR LA FUNCION
SELECT * FROM HR.EMPLOYEES
2. Elabore un Procedimiento Almacenado (SP), que actualice la edad de cada empleado utilizando la FUNCIÓN
CREADA PREVIAMENTE agregue un nuevo campo llamado EDAD_EMP A LA TABLA EMPLOYEES y, también,
debe actualizar el campo COMMISSION_PCT para todos los que estan en NULL, esto debe ser el promedio de
todas las comisiones. (10 ptos.)
Script SQL
-- Creamos el Procedimiento
CREATE OR REPLACE PROCEDURE sp_update_employee_dates
IS
V_COMISION FLOAT;
BEGIN
--calculamos el promedio de comisiones
SELECT AVG(COMMISSION_PCT)
INTO V_COMISION
FROM HR.EMPLOYEES
WHERE COMMISSION_PCT IS NOT NULL;
El PGA (Program Global Area) es una porción de la memoria RAM que se asigna a cada sesión o
proceso en Oracle. Es un área de trabajo que se utiliza para almacenar información relacionada
con la ejecución de sentencias y procedimientos.Nos permite un mejor control y gestión de la
memoria RAM y además un mejor rendimiento en la ejecución tanto de sentencias como de
procedimientos.
Es un componente importante que se encuentra entre el SGA (System Global Area) y la memoria
RAM. El SGA es una estructura de memoria compartida que se utiliza para almacenar información
que es accedida por todas las sesiones, como datos de catálogo y tablas.
Para cada respuesta, copie el script y capute una imagen del resultado, debe estar conectado con su
propio usuario.
Script SQL
--vista de tablas
select * from hr.employees
select * from hr.jobs
select * from hr.countries
select *from hr.locations
select * from hr.departments
select * from hr.regions
--vista de campos
select
E1.employee_id CODIGO_EMP,
E1.first_name||' '||E1.last_name NOMBRE_APE_EMP,
J1.job_title CARGO_EMP,
E1.salary+ nvl(E1.commission_pct, 0) "SALARIO_EMP+COMISION",
E2.first_name||' '||E2.last_name NOMBRE_JEFE,
J2.job_title CARGO_JEFE,
R.region_name REGION_JEFE
--Tabla de empleados por primer vez hacemos join con la tabla Jobs: E1 y J1
from HR.EMPLOYEES E1
join HR.JOBS J1
on E1.job_id=J1.job_id
--Se tiene que llamar a la tabla de departamentos, locaciones, paises y región: D,L,C y R
join HR.DEPARTMENTS D
on D.department_id=E2.department_id
join HR.LOCATIONS L
on L.location_id=D.location_id
join HR.COUNTRIES C
on C.country_id=L.country_id
join HR.REGIONS R
on R.region_id=C.region_id
where E1.manager_id is not null;