FUNCTION, PROCEDURE, PACKAGE Y TRIGGERS
lauraherrera12Examen19 de Junio de 2018
701 Palabras (3 Páginas)105 Visitas
FUNCTION, PROCEDURE, PACKAGE Y TRIGGERS
- Crear una función para hallar la potencia.
- Crear una función para hallar el factorial.
- Crear una función que calcule el promedio del salario de la tabla emp.
- Crear una función que muestre el salario de la tabla emp, ingresando su código del empleado.
- Crear una función que muestre la suma del salario y comisión de la tabla emp, ingresando el código del empleado.
- Crear un procedimiento para poder insertar datos a la tabla emp. Utilizar el atributo type.
- Crear un procedimiento que muestre el nombre, puesto de trabajo y salario de la tabla emp, ingresando el codigo del empleado.
- Crear un procedimiento que muestre el nombre del departamento y su localización de la tabla dept, ingresando el codigo de departamento, utilizar el atributo rowtype.
- Utilizando cursor, crear un procedimiento que muestre los nombres y salarios de todos los empleados de la tabla emp, utilizar el atributo rowtype;
DESARROLLO:
1.create or replace function potencia(n number,e number)return number is
rpta number :=1; begin
for i in 1 ..e loop rpta:=rpta*n; end loop; return rpta;
end;
/
2.
> create or replace function factorial(n number) return number is
rpta number:=1;
begin if n=0 or n=1 then
rpta:=1; else for i in 1..n loop rpta:=rpta*i; end loop; end if; return rpta;
end;
/
> select factorial(4) from dual; 3.
create or replace function promedio return number is
prom number; begin
select avg(sal) into prom from emp; return prom;
end;
/
> select promedio from dual; 4.
sql> create or replace function salario(v_code emp.empno%type) return number is
v_sal number; begin
select sal into v_sal from emp where empno=v_code; return v_sal;
end;
/
> select salario(7900) from dual;
5.
create or replace function salneto(v_code emp.empno%type) return number is
rpta number; begin
select sal+nvl(comm,0) into rpta from emp where empno=v_code; return rpta;
end;
/
> select salneto(7900) from dual;
6.
create or replace procedure insemp( v_empno emp.empno%type, v_ename emp.ename%type, v_job emp.job%type, v_mgr emp.mgr%type, v_hiredate emp.hiredate%type, v_sal emp.sal%type, v_comm emp.comm%type,
v_deptno emp.deptno%type) is
begin insert into emp
values(v_empno,v_ename,v_job,v_mgr,v_hiredate,v_sal,v_comm,v_deptno); commit; end;
> / > execute insemp(2005,'jose','compras',7900,sysdate,5000,2000,30);
...