Unidad 5 Funciones y Procedimientos
Unidad 5 Funciones y Procedimientos
Unidad 5 Funciones y Procedimientos
num_emple employees.employee_id%TYPE)
AS
exc_notdata exception;
v_row ROWID;
BEGIN
exception
END deleteEmployee;
exec deleteEmployee(140);
CREATE OR REPLACE
PROCEDURE modify_location(
num_depart departments.department_id%type,
locality departments.location_id%type)
AS
BEGIN
DBMS_OUTPUT.PUT_LINE('Localizacion actualizada.');
EXCEPTION
DBMS_OUTPUT.PUT_LINE('INSERCIÓN FALLIDA.');
END modify_location;
exec modify_location(40,2400);
--3. Realizar un procedimiento que reciba un número y muestre su tabla de multiplicar hasta el
12.
as
begin
dbms_output.put_line(to_char(resultado)||'x'||to_char(f)||'='||to_char(f*resultado));
end loop;
end;
exec tabla_numero(10);
set SERVEROUTPUT ON;
nombre employees.first_name%type,
apellido employees.last_name%type,
email employees.email%type,
numero_tel employees.phone_number%type,
puesto employees.job_id%type,
salario employees.salary%type,
numero_depart employees.department_id%type
as
NUM_EMPLEADO2 employees.employee_id%type ;
fecha2 date;
BEGIN
NUM_EMPLEADO2:=NUM_EMPLEADO2 +1;
VALUES
(NUM_EMPLEADO2,nombre,apellido,email,numero_tel,fecha2,puesto,salario,null,null,numero
_depart);
END;
/
EXEC
insert_employee('Gustavo','amador','[email protected]','8292791731','IT_PROG',23200,
90);
--5.Escriba un programa en PL / SQL para mostrar una información detallada basada en la tabla
para el empleado
as
empleado employees%rowtype;
begin
FROM employees
'||empleado.department_id);
end;
exec presentar_empleado(149);
--6.Escriba un procedimiento almacenado que imprima una lista de gerentes y el nombre de
los departamentos.
as
nombre employees.first_name%type;
apellido employees.last_name%type;
depart departments.department_name%type;
cursor gerentes_cursor is
on e.department_id=d.department_id
WHERE job_id='ST_MAN';
begin
open gerentes_cursor;
loop
end loop;
close gerentes_cursor;
end;
exec gerentes();
--Funciones
--1.Escriba una función que reciba una lista de hasta 3 números y visualice su suma.
RETURN NUMBER
AS
v_num_uno number:=v_num1;
v_num_dos number:=v_num2;
v_num_tres number:=v_num3;
total number:=0;
BEGIN
total :=v_num_uno+v_num_dos+v_num_tres;
return total;
END;
declare
v_suma number;
begin
v_suma:=SUMA_TRES_VALORES(10,10,10);
end;
return number
as
v_salary employees.salary%TYPE;
begin
return v_salary;
end;
declare
v_salary employees.salary%TYPE;
begin
v_salary:=empleado_salario(102);
exception
end;
--3.Escriba una función que identificar el empleado con el salario mas alto y devuelva dicho
valor.
return number
as
v_salary employees.salary%TYPE;
begin
return v_salary;
end;
declare
v_salary employees.salary%TYPE;
begin
v_salary:=salario_maximo();
exception
end;
--4.Escriba una función que reciba un empleado y retorne el tiempo de el tiempo laborando en
la empresa.
return date
as
v_emp_fecha employees.hire_date%TYPE;
begin
return v_emp_fecha;
end;
declare
v_emp_fecha employees.hire_date%TYPE;
begin
v_emp_fecha:=empleado_fecha(103);
exception
end;
--5.Escriba una función que recibe una letra y devuelva si es vocal o consonante.
return VARCHAR2
as
v_letra CHAR(1):= letra;
v_V CHAR(1):='V';
v_C CHAR(1):='C';
begin
v_letra:=letra;
return v_V;
else
return v_c;
end if;
end;
declare
letra CHAR(1);
begin
letra:=vocal_consonante('m');
else
end if;
end;