INTERACTUANDO CON EL SERVIDOR ORACLE
Enviado por Claudio Melendez • 12 de Junio de 2017 • Examen • 391 Palabras (2 Páginas) • 124 Visitas
GUÍA Nº3 DE PLSQL
INTERACTUANDO CON EL SERVIDOR ORACLE
====================================
EJERCICIO 1
===========
DEFINE v_nom_depto = 'Education';
DECLARE
v_depto_id_max departments.department_id%type;
BEGIN
SELECT MAX(department_id) INTO v_depto_id_max FROM departments;
INSERT INTO departments
VALUES (v_depto_id_max+10, '&v_nom_depto', NULL, NULL );
END;
EJERCICIO 2
===========
CREATE TABLE empleados AS SELECT * FROM employees;
TRUNCATE TABLE empleados;
DECLARE
v_salario_promedio employees.salary%type;
begin
--Obtiene Salario Promedio + 5000
select round(avg(salary))+5000
into v_salario_promedio
from employees;
--Llena Tabla EMPLEADOS con los Empleados de employees que cumplen con salario > a Salario Promedio
insert into empleados
select * from employees
where salary > v_salario_promedio;
--Modifica el Salario de tabla empleados rebajandolo en 13.4 Porciento
update empleados
SET salary = salary - round((salary*13.4/100));
END;
EJERCICIO 3
===========
/*
CREATE TABLE AUMENTO_SALARIO(
EMPLEADO NUMBER(6) PRIMARY KEY,
SALARIO_ACTUAL NUMBER(8,2),
SALARIO_AUMENTADO NUMBER(8,2),
AUMENTO NUMBER(8,2)
);
*/
truncate table aumento_salario;
declare
v_filas varchar(30);
BEGIN
--Llena Tabla AUMENTO_SALARIO con los Empleados de employees que no tiene porcentaje de comisión
INSERT INTO AUMENTO_SALARIO
(empleado, salario_actual, salario_aumentado, aumento)
SELECT employee_id, salary, ROUND(salary + (salary * 8.5 /100)), ROUND((salary * 8.5 /100)) AS "AUMENTO"
FROM employees
where commission_pct is null
ORDER BY "AUMENTO";
v_filas := ('Se Procesaron ' || SQL%ROWCOUNT || ' filas');
DBMS_OUTPUT.PUT_LINE (v_filas);
END;
EJERCICIO 4
===========
/*
CREATE TABLE PERSONAL_FALTANTE (
ID_DEPTO NUMBER(4) PRIMARY KEY,
TOTAL_EMPLEADOS NUMBER(3),
TOTAL_EMPLEADOS_FALTAN NUMBER(3)
);
*/
TRUNCATE TABLE personal_faltante;
DECLARE
v_20_porc_personal_max NUMERIC(2);
BEGIN
--Obtener el 20% del Depto com más personal
SELECT MAX(COUNT(*))*0.2
INTO v_20_porc_personal_max
FROM
...