Tiggers Oracle

Páginas: 5 (1184 palabras) Publicado: 17 de abril de 2011
Funciones,Procedimientos , triggers y Packages en Oracle
Universidad Nacional Pedro Ruiz Gallo

Integrantes: Cieza Tenorio Rugby Yuri 065182-G - Gutierrez Guevara Carlos

2010
CSperez
CS
01/01/2010

PROCEDIMIENTOS:
I.- Aumentar en 10 soles a todos los contadores del área de finanzasde la empresa.

1.- Creamos una tabla trabajadores a partir de "JOBS" para ejemplificar, pasamos a consultar posteriormente.

- CREATE TABLE Trabajadores AS Select * from JOBS
- Select * fom trabajadores

Como podemos fijar poseen un salario min de $4220
2.- Creamos el procedimiento "Actualizar Salario min"

CREATE OR REPLACE PROCEDURE Actualizar_Salario_min(id_jobs IN VARCHAR, amountIN NUMBER)
AS BEGIN
UPDATE trabajadores
SET min_salary= min_salary + amount
WHERE job_id = id_jobs;
END;
3.- Pasamos parámetros respectivos en el procedimiento; en este caso aumentaremos en $10 a todos los contadores del área de Finanzas.
BEGIN
bonus('FI_ACCOUNT',10);
COMMIT;
END;

4.- Hacemos una consulta a la tabla "TRABAJADORES"
select * from trabajadoresII.- Se Pide Actualizar los datos de los email de los empleados.
1.-Se crea la tabla empleados a partir de EMPLOYEES.
-CREATE TABLE EMPLEADOS AS SELECT * FROM EMPLOYEES
-SELECT * FROM EMPLEADOS

2.-Se crea el procedimiento “Actualizar_Datos_Empleado”, con dos parámetros, el del id del empleado y su email respectivo.
CREATE OR REPLACE PROCEDURE Actualizar_Datos_Empleados(Id_Empleado INNUMBER,Emails IN VARCHAR )
AS BEGIN
UPDATE Empleados
SET Email= Emails
WHERE Employee_Id = Id_Empleado;
END;
3.- Pasamos los parámetros respectivos.
BEGIN
Actualizar_Datos_Empleados(100,'ryct_0714@hotmail.com');
COMMIT;
END;
4.-Hacemos la consulta a la table empleados.
Select * from empleados

FUNCIONES:
I.- Crear una función que indique si un salario sobrepasa o no a los$5000 mensuales.
1.- Creamos una función que indique si el salario mensual de un empleado determinado sobrepasa o no los $5000.
CREATE FUNCTION check_sal(empno employees.employee_id%TYPE) RETURN Boolean IS
dept_id employees.department_id%TYPE;
sal employees.salary%TYPE;
BEGIN
SELECT salary,department_id INTO sal,dept_id
FROM employees WHERE employee_id=empno;
IF sal > 5000 THENRETURN TRUE;
ELSE
RETURN FALSE;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN NULL;
END;
2.-Pasamos el valor del id del empleado como parámetro.
BEGIN
DBMS_OUTPUT.PUT_LINE('Ver Salario mensual del empleado con id 105');
IF (check_sal(105) IS NULL) THEN
DBMS_OUTPUT.PUT_LINE('The function returned
NULL due to exception');
ELSIF (check_sal(105)) THENDBMS_OUTPUT.PUT_LINE('Salary > $5000');
ELSE
DBMS_OUTPUT.PUT_LINE('Salary < $5000');
END IF;
END;
II.- Crear una función que indique si el salario de un empleado está por debajo o por encima del promedio salarial.
1. Pasamos a crear la Funcion “Check_sal2”, con un parámetro de id del empleado y que retorna un valor booleano.
CREATE FUNCTION check_sal2(empno employees.employee_id%TYPE) RETURNBoolean IS
dept_id employees.department_id%TYPE;
sal employees.salary%TYPE;
avg_sal employees.salary%TYPE;
BEGIN
SELECT salary,department_id INTO sal,dept_id
FROM employees WHERE employee_id=empno;
SELECT avg(salary) INTO avg_sal FROM employees
WHERE department_id=dept_id;
IF sal > avg_sal THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
EXCEPTION
WHENNO_DATA_FOUND THEN
RETURN NULL;
END;
2.- Probamos un parámetro, el empleado con id=205
BEGIN
DBMS_OUTPUT.PUT_LINE('Checking for employee with id 205');
IF (check_sal2(205) IS NULL) THEN
DBMS_OUTPUT.PUT_LINE('The function returned
NULL due to exception');
ELSIF (check_sal2(205)) THEN
DBMS_OUTPUT.PUT_LINE('Salary > average');
ELSE
DBMS_OUTPUT.PUT_LINE('Salary < average');...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • ORACLE
  • Oracle
  • Oracle
  • oracle
  • Oracle
  • Oracle
  • oracle
  • ORACLE

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS