ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

INTERACTUANDO CON EL SERVIDOR ORACLE


Enviado por   •  12 de Junio de 2017  •  Examen  •  391 Palabras (2 Páginas)  •  124 Visitas

Página 1 de 2

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

...

Descargar como (para miembros actualizados) txt (3 Kb) pdf (46 Kb) docx (12 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com