Desarrollo de Procedimientos y Funciones PL SQL en Oracle

Enviado por Chuletator online y clasificado en Matemáticas

Escrito el en español con un tamaño de 3,01 KB

Introducción a los Procedimientos y Cursores en PL/SQL

A continuación, se presenta la implementación de un procedimiento que utiliza dos cursores, uno para la tabla Emple y otro para la tabla Depart, cumpliendo con los requisitos de filtrado y visualización de datos.

Requisitos del Ejercicio 1

  • Visualizar el apellido, oficio, salario y el nombre del departamento de todos los empleados.
  • Mostrar únicamente aquellos empleados cuyo salario sea mayor que el valor devuelto por la función de cálculo salarial.

Función Mediar

Create or replace function mediar (departamento emple.dept_no%type)
return number
as
    cou number;
begin 
    select avg(salario) into cou from emple where dept_no = departamento;
    return cou;
end mediar;

Procedimiento Visualizar (Primer Ejercicio)

Create or replace procedure visualizar (departamento emple.dept_no%type)
as
    media number;
    cursor cur1 is select * from emple;
    cursor cur2 is select * from depart;
begin
    media := mediar(departamento);
    for i in cur2 loop 
        for j in cur1 loop
            if i.dept_no = j.dept_no then -- [IGUALAMOS CAMPOS]
                if j.salario > media then 
                    dbms_output.put_line(j.apellido || ' ' || j.oficio || ' ' || j.salario || ' ' || i.dnombre);
                end if;
            end if;
        end loop;
    end loop;
end visualizar;

Reportes y Listados con Procedimientos Almacenados

Requisitos del Ejercicio 2

Escribir un procedimiento llamado Visualizar que realice las siguientes acciones:

  • Mostrar cada empleado con su apellido y salario.
  • Por cada departamento, mostrar el número de empleados y la suma total de los salarios.
  • Al final del listado, mostrar el número total de empleados y la suma global de todos los salarios.

Procedimiento Visualizar (Segundo Ejercicio)

Create or replace procedure Visualizar
is
    cursor cur1 is select * from emple;
    cursor cur2 is select sum(salario) "Suma", count(*) "Total" from emple group by dept_no;
    empleados number;
    ganar number;
begin
    for i in cur1 loop
        dbms_output.put_line(i.apellido || ' ' || i.salario);
    end loop;
    for j in cur2 loop 
        dbms_output.put_line(j.suma || ' ' || j.total);
    end loop;
    select count(*), sum(salario) into empleados, ganar from emple;
    dbms_output.put_line(empleados || ' ' || ganar);
end visualizar;
/

Creación de Funciones de Conteo

Requisitos del Ejercicio 3

Crea una función que, al introducir el número de departamento, devuelva la cantidad exacta de empleados asignados a dicho departamento.

Función Counter

Create or replace function counter(departamento emple.dept_no%type)
return number
as
    cou number;
begin
    select count(*) into cou from emple where dept_no = departamento;
    return cou;
end counter;

Entradas relacionadas: