You are on page 1of 3

Create Or Replace Procedure CANT_EMPLExCOD_OCUPACION(COD_OCUPACION EMPLOYEES.

JOB
_ID%TYPE)
Is
--OCUPACION EMPLOYEES.JOB_ID%TYPE;
CANTIDAD NUMBER(6);
OCUPACION JOBS.JOB_TITLE%TYPE;
Begin
select COUNT(*) INTO CANTIDAD from EMPLOYEES
WHERE JOB_ID=COD_OCUPACION;
--PARA MOSTRAR NOMBRE DE LA OCUPACION
select JOB_TITLE INTO OCUPACION from JOBS
WHERE JOB_ID=COD_OCUPACION;
dbms_output.put_line(' OCUPACION : ' ||OCUPACION );
dbms_output.put_line(' CANTIDAD DE EMPLEADOS : ' ||CANTIDAD );
EXCEPTION
WHEN NO_DATA_FOUND THEN-->(ENTONCES)
dbms_output.put_line('NO se encontro Codigo');
END;
begin
CANT_EMPLExCOD_OCUPACION('SAAA_MAN');
end;
////////////////////////////////////
--EJEMPLO02
CREATE OR REPLACE PROCEDURE Ejemplo2(aumento number,sueldo_base number)
IS
cantidad number (5);
except1 exception;
BEGIN
SELECT count(*) INTO cantidad FROM EMPLOYEES
WHERE SALARY > SUELDO_BASE;
IF(CANTIDAD=0) then
RAISE except1;
END IF;
UPDATE EMPLOYEES
set SALARY = salary + aumento
where salary > sueldo_base;
EXCEPTION
WHEN except1 then
dbms_output.put_line('No se encontro DATA');
END;
BEGIN
Ejemplo2(198,133311);
END;

--PRACTICA CALIFICADA--> 01
Create Or Replace Procedure Practica01(nombre_departamento DEPARTMENTS.DEPARTMEN
T_NAME%TYPE)
Is
CANTIDAD NUMBER(6);
Departamento DEPARTMENTS.DEPARTMENT_NAME%TYPE;
codigo DEPARTMENTS.DEPARTMENT_ID%type;
Begin
select DEPARTMENTS.DEPARTMENT_ID into codigo from DEPARTMENTS

where DEPARTMENT_NAME=nombre_departamento;
select COUNT(*) INTO CANTIDAD from EMPLOYEES
WHERE DEPARTMENT_ID =codigo;
--PARA MOSTRAR NOMBRE DEl DEPARTAMENTO
select DEPARTMENT_NAME INTO departamento from DEPARTMENTS
WHERE DEPARTMENT_ID =codigo;
dbms_output.put_line(' NOMBRE_DEPARTAMENTO : ' ||DEPARTAMENTO );
dbms_output.put_line(' CANTIDAD DE EMPLEADOS : ' ||CANTIDAD );
Exception
when no_data_found then
dbms_output.put_line(' el departamento no existe');
end;
begin
Practica01('asasfsdgg');
end;
select DEPARTMENT_ID,DEPARTMENT_NAME,MANAGER_ID,LOCATION_ID from HR.DEPARTMENTS;
---PRACTICA CALIFICADA-->02
CREATE OR REPLACE PROCEDURE practica02(buscar JOBS.JOB_TITLE%TYPE)
IS
CURSOR registro IS
select EMPLOYEES.FIRST_NAME,EMPLOYEES.LAST_NAME,JOBS.JOB_TITLE,DEPARTMENTS.DEPAR
TMENT_NAME,JOB_HISTORY.END_DATE
from EMPLOYEES INNER JOIN JOBS
ON EMPLOYEES.JOB_ID = JOBS.JOB_ID
INNER JOIN DEPARTMENTS
ON EMPLOYEES.DEPARTMENT_ID=DEPARTMENTS.DEPARTMENT_ID
INNER JOIN JOB_HISTORY
ON EMPLOYEES.EMPLOYEE_ID = JOB_HISTORY.EMPLOYEE_ID
--where JOBS.JOB_TITLE= buscar;
WHERE JOB_HISTORY.END_DATE= buscar;
nombre EMPLOYEES.FIRST_NAME%type;
apellido EMPLOYEES.LAST_NAME%type;
trabajo JOBS.JOB_TITLE%type;
departamento DEPARTMENTS.DEPARTMENT_NAME%type;
fecha_salida JOB_HISTORY.END_DATE%type;
excep exception;
contador number(9) := 0;
BEGIN
FOR recorrido in registro loop
nombre := recorrido.FIRST_NAME;
apellido := recorrido.LAST_NAME;
trabajo := recorrido.JOB_TITLE;
departamento := recorrido.DEPARTMENT_NAME;
fecha_salida := recorrido.END_DATE;
--fecha_salida := TO_CHAR(END_DATE,'month');
dbms_output.put_line('Nombre: '||nombre|| ', apellido: '||apellido);
dbms_output.put_line('Trabajo: '||trabajo|| ', Departamento: '||departamento);
dbms_output.put_line('Fecha_Salida: '||fecha_salida);
contador := contador +1;
end loop;
IF (contador =0 ) then

raise excep;
end if;
EXCEPTION
WHEN excep then
dbms_output.put_line('Ocupacion no existe');
end;
begin
PRACTICA02('24/07/98');
end;
////////////////////////////
SELECT --EMPLOYEES.FIRST_NAME as "Nombre",--EMPLOYEES.LAST_NAME AS "Apellidos",
--TO_NUMBER(TO_CHAR(JOB_HISTORY.END_DATE,'yyyy')) - TO_NUMBER(TO_CHAR(JOB_HISTOR
Y.START_DATE,'yyyy')) AS "Aos Trabajando",
TO_CHAR(END_DATE,'month') AS "MES DE SALIDA"--,TO_CHAR(HIRE_DATE,'mm') AS "Numer
o de Mes"
FROM EMPLOYEES INNER JOIN JOB_HISTORY
ON EMPLOYEES.EMPLOYEE_ID = JOB_HISTORY.EMPLOYEE_ID
--WHERE TO_CHAR(JOB_HISTORY.START_DATE,'month') BETWEEN mayo and agosto
--WHERE TO_NUMBER(TO_CHAR(HIRE_DATE,'mm')) >= 05 AND TO_NUMBER(TO_CHAR(HIRE_DAT
E,'mm')) <= 09 -- or TO_CHAR(HIRE_DATE,'mm') = '06' or TO_CHAR(HIRE_DATE,'mm')
= '07' or TO_CHAR(HIRE_DATE,'mm') = '08' --AND TO_NUMBER(TO_CHAR(JOB_HISTORY.
START_DATE,'mm')) <8
--SELECT TO_CHAR(HIRE_DATE,'month') AS "MES DE INGRESO"
--FROM EMPLOYEES INNER JOIN JOB_HISTORY
--ON EMPLOYEES.EMPLOYEE_ID = JOB_HISTORY.EMPLOYEE_ID
--PRACTICA CALIFICADA--> 03
create or replace PROCEDURE Practica03(nombre EMPLOYEES.FIRST_NAME%type)
IS
contador number(6);
excep EXCEPTION;
aos number (6);
BEGIN
SELECT count(*) INTO cantidad FROM EMPLOYEES

You might also like