datos bpo

Download datos bpo

If you can't read please download the document

Upload: aunqueteduelafeliz

Post on 21-Nov-2015

218 views

Category:

Documents


4 download

DESCRIPTION

datos bpo

TRANSCRIPT

Drop Procedure nombre;procedemientos create procedure sp_ejemplo1 iscodigo employees.employee_id%type:=101; nombre employees.first_name%type;salario employees.salary%type;Beginselect first_name, salary into nombre, salariofrom employeeswhere employee_id=codigo;htp.print('Nombre : '|| nombre);htp.print('Salario : '|| salario);end;Begin Ejecutar el Procedimientosp_ejemplo1;End***********+Create or replace procedure sp_ejemplo2 (codigo number) isnombre employee.first_name%type;Beginselect first_name into nombrefrom employeeswhere employee_id=codigo;htp.print('El nombre es : '|| nombre);end;Begin Ejecutar el Procedimientosp_ejemplo2(200);End;**************CREATE OR REPLACE PROCEDURE sp_ejemplo3 (puesto varchar) ISnombre employees.first_name%type;salario employees.salary%type;CURSOR cur_empleado ISselect first_name, salary from employeeswhere job_id=puesto;BEGINOPEN cur_empleado;LOOPFETCH cur_empleado INTO nombre, salario;IF (cur_empleado%FOUND) THENhtp.print('Nombre del Empleado: ' || nombre );htp.print(Con Salario: ' || salario);END IF;EXIT WHEN cur_empleado%NOTFOUND;END LOOP;CLOSE cur_empleado;END;***********Construir un procedimiento llamado sp_empleados donde se ingrese el nombre del departamento y luego presentar un listado de que empleados estn relacionados con dicho departamento, mostrando el nombre, puesto y fecha de contratacin.CREATE OR REPLACE PROCEDURE sp_ejemplo4 (puesto varchar) ISnombre employees.first_name%type;salario employees.salary%type;no_puesto exception;CURSOR cur_empleado ISSELECT first_name, salary FROM employeesWHERE job_id=puesto;BEGINOPEN cur_empleado;LOOPFETCH cur_empleado INTO nombre, salario;EXIT WHEN cur_empleado%NOTFOUND;htp.print('Nombre del Empleado: ' || nombre || ' con Salario: ' || salario);END LOOP;IF cur_empleado%rowcount=0 THENraise no_puesto;END IF;CLOSE cur_empleado;EXCEPTIONWHEN no_puesto THENhtp.print('Puesto no Encontrado ');END;funciones************CREATE FUNCTION f_ejemplo1 (salario number)RETURN boolean ISBEGIN--validar salario mayor a 1000if (salario>1000) thenreturn (true);elsereturn (false);end if;END;**********invocando a la funcion desde un procedimientoCREATE or replace PROCEDURE sp_sueldo (codigo number) ISsueldo employees.salary%type;beginselect salary into sueldofrom employeeswhere employee_id=codigo;IF f_ejemplo1(sueldo) THENhtp.print('Salario mas 10% '||sueldo*1.10);ELSEhtp.print('Salario mas 20 % '||sueldo*1.20 );END IF;end;Crear una funcin con el nombre f_promedio y que devuelva verdadero si el salario es mayor al promedio, caso contrario devolver falso.Luego, crear un procedimiento llamado sp_promedio, donde se ingrese el cdigo de un empleado y muestre el mensaje salario mayor al promedio, caso contrario salario por debajo al promedio. Este procedimiento debe invocar a la funcin.CREATE FUNCTION f_promedio (salario number)RETURN boolean ISprom employees.salary%type;BEGINselect avg(salary) into promfrom employees;IF (salario>prom) THENreturn (true);ELSEreturn (false);END IF;END;*****************invocando a la funcion desde un procedimiento********CREATE or replace PROCEDURE sp_promedio(codigo number) ISsueldo employees.salary%type;BEGINselect salary into sueldofrom employeeswhere employee_id=codigo;if f_promedio(sueldo) thenhtp.print('Salario Mayor al Promedio');elsehtp.print('Salario Menor al Promedio');end if;END;trigger*************************pregunta 1 de 11.create table tab_sal(fecha date,proceso varchar2(50)) iCREATE or replace TRIGGER dis_unoBEFORE INSERT ON departmentsBeginINSERT INTO tab_salVALUES (sysdate,'Insertado por trigger ');End;insert into tab_sal values('11/10/2014','insertado');select * from tab_salselect * from departmentspregunta 2 de la 11************************create table tab_menorr(secuencia number not null primary key,menor number,situacion varchar(30))create or replace trigger dis_dos1after insert or update ON employeesDeclarenum number;menor number;beginSELECT nvl(min(secuencia),0)-1 into numfrom tab_menorr;select min(salary)into menorfrom employees;insert into tab_menorrvalues (num,menor,'insertado por el triger');end;drop triggerinsert into tab_menorr values('111','2000','insertado por el trigger');update employeesset salary=salary-10where employee_id=132;Select * from tab_menorr Select * from employees order by salary Select * from employees where employee_id='111'pregunta 3 de la 11create sequence seq_cor start with 100increment by 2create table tab_sta(orden number not null primary key,fecha date,proceso varchar(50))CREATE or replace TRIGGER dis_preafter UPDATE or INSERT or DELETE on employeesDECLAREmensaje varchar2(50);BEGINIF UPDATING THENmensaje := 'Fila actualizada en tabla Empleado';ELSIF INSERTING THENmensaje := 'Fila Insertada en tabla Empleado ';ELSEmensaje:= 'Fila Eliminada en tabla Empleado ';END IF;-- Proceso de InsercinINSERT into tab_staVALUES (seq_cor.nextval, SYSDATE, MENSAJE);END;Drop trigger dis_dos;update employeesset salary=salary-20where employee_id=132;select * from tab_stapregunta 4 de la 11create sequence sec_agregar start with 500increment by 2create table n_puesto(orden number,usuario varchar2(50),operacion varchar2(50))CREATE or replace TRIGGER d_agregarafter UPDATE or INSERT or DELETE on employeesDECLAREusuario varchar2(50);operacion varchar2(50);BEGINIF UPDATING THENusuario := 'select username form user_users';operacion := 'Fila actualizada en tabla Empleado';ELSIF INSERTING THENusuario := 'select username form user_users';operacion := 'Fila insertado en tabla Empleado';ELSEusuario := 'select username form user_users';operacion := 'Fila eliminado en tabla Empleado';END IF;-- Proceso de InsercinINSERT into n_puestosVALUES (sec_agregar.nextval, usuario, operacion);END;