ejercicios resueltos

Download Ejercicios resueltos

If you can't read please download the document

Upload: joao-tlv

Post on 14-Dec-2015

24 views

Category:

Documents


6 download

DESCRIPTION

Ejercicios resueltos de base de datos-Oracle

TRANSCRIPT

-------------EJERCICIO 1:--------------set serveroutput ondeclarex employees%Rowtype;anio_contratado varchar2(25);ultimo_dia_mes varchar2(25); beginselect * into x from EMPLOYEES WHERE employee_id=128;anio_contratado:= to_char(x.hire_date,'yyyy');ultimo_dia_mes:= last_day(x.hire_date);DBMS_OUTPUT.PUT_LINE('***********************************');DBMS_OUTPUT.PUT_LINE(' Codigo de empleado: '||x.employee_id);DBMS_OUTPUT.PUT_LINE(' Nombre completo: '||x.first_name||' '||x.last_name);DBMS_OUTPUT.PUT_LINE(' Ao que fue contratado : '||anio_contratado);DBMS_OUTPUT.PUT_LINE(' Ultimo dia del mes : '|| ultimo_dia_mes);DBMS_OUTPUT.PUT_LINE('***********************************');DBMS_OUTPUT.PUT_LINE('Fecha de reporte: '||TO_CHAR(sysdate, 'DY, DD-MON-YYYY'));end;---------------EJERCICIO 2:---------------set serveroutput ondeclarecod number:=&ingrese_codigo;x employees%Rowtype;salario_redondeo number;meses number;beginselect * into x from EMPLOYEES where EMPLOYEE_ID=cod; salario_redondeo:=round (x.salary/20,2); meses:= round (months_between(sysdate,x.hire_date),0);DBMS_OUTPUT.PUT_LINE('***********************************');DBMS_OUTPUT.PUT_LINE(' Codigo de empleado: '||cod);DBMS_OUTPUT.PUT_LINE(' Nombre: '||x.first_name||' '||x.last_name);DBMS_OUTPUT.PUT_LINE(lpad(' Sueldo: ',15,' ')||TO_CHAR(x.salary , 'L999,999.99'));DBMS_OUTPUT.PUT_LINE(lpad(' Salary redondeado: ',15,' ')||TO_CHAR(salario_redondeo, 'L999,999.99'));DBMS_OUTPUT.PUT_LINE(' Meses de servicio: '|| meses);DBMS_OUTPUT.PUT_LINE('***********************************');DBMS_OUTPUT.PUT_LINE('Fecha de reporte: '||TO_CHAR(sysdate, 'DY, DD-MON-YYYY'));end;---------------EJERCICIO 3:---------------set serveroutput ondeclarex employees%Rowtype;comision number;sueldo_total number;bono_mensual number;total number;meses number;beginselect * into x from employees where salary = (select max(salary) from employees);comision:=(nvl(x.commission_pct,0)*x.salary);sueldo_total:=x.salary + (nvl(x.commission_pct,0)*x.salary);bono_mensual:= (round(months_between(sysdate,x.hire_date)) * 100) ;Total:=(x.salary + (nvl(x.commission_pct,0)*x.salary))+((round(months_between(sysdate,x.hire_date)) * 100)); meses:= round (months_between(sysdate,x.hire_date),0);DBMS_OUTPUT.PUT_LINE('***********************************');DBMS_OUTPUT.PUT_LINE('ID de empleado: '||x.employee_id);DBMS_OUTPUT.PUT_LINE('Nombre completo: '||x.first_name||' '||x.last_name);DBMS_OUTPUT.PUT_LINE(lpad('Salario: ',15,' ')||TO_CHAR(x.salary , 'L999,999.99'));DBMS_OUTPUT.PUT_LINE(lpad('Comision: ',15,' ')||TO_CHAR(comision, 'L999,999.99'));DBMS_OUTPUT.PUT_LINE(lpad(' Sueldo total: ',15,' ')||TO_CHAR(sueldo_total, 'L999,999.99'));DBMS_OUTPUT.PUT_LINE(lpad(' Bono mensual: ',15,' ')||TO_CHAR(bono_mensual, 'L999,999.99'));DBMS_OUTPUT.PUT_LINE(lpad('Total: ',15,' ')||TO_CHAR(total, 'L999,999.99'));DBMS_OUTPUT.PUT_LINE(' Meses de servicio: '|| meses);DBMS_OUTPUT.PUT_LINE('***********************************');DBMS_OUTPUT.PUT_LINE('Fecha de reporte: '||TO_CHAR(sysdate, 'DY, DD-MON-YYYY'));end;---------------------EJERCICIO 4:---------------------set serveroutput ondeclarecod number:=&ingrese_codigo;x employees%Rowtype;nuevo_codigo varchar(25);beginselect * into x from EMPLOYEES where EMPLOYEE_ID=cod;nuevo_codigo:=(substr(x.first_name,(length (x.first_name)-3),3))||(x.last_name)||x.employee_id;DBMS_OUTPUT.PUT_LINE('***********************************');DBMS_OUTPUT.PUT_LINE(' Codigo original de empleado: '||cod);DBMS_OUTPUT.PUT_LINE(' Nuevo codigo de empleado :'||nuevo_codigo);DBMS_OUTPUT.PUT_LINE('***********************************');DBMS_OUTPUT.PUT_LINE('Fecha de reporte: '||TO_CHAR(sysdate, 'DY, DD-MON-YYYY'));end;--------------------------EJERCICIO 5:--------------------------set serveroutput ondeclarex employees%Rowtype;salida_vacaciones varchar(25);nueva_salida_vacaciones varchar(25);fecha_salida_vacaciones_final varchar(25);beginselect * into x from EMPLOYEES WHERE employee_id=125;salida_vacaciones:=to_date(to_char(x.hire_date,'dd')||'/'|| to_char(x.hire_date,'mm')||'/'||2013);nueva_salida_vacaciones:=add_months((to_date(to_char(x.hire_date,'dd')||'/'|| to_char(x.hire_date,'mm')||'/'||2013)),3);fecha_salida_vacaciones_final:= next_day((add_months((to_date(to_char(x.hire_date,'dd')||'/'|| to_char(x.hire_date,'mm')||'/'||2013)),3)),'Lunes');DBMS_OUTPUT.PUT_LINE('***********************************');DBMS_OUTPUT.PUT_LINE(' Nombre empleado: '||x.first_name||' '||x.last_name);DBMS_OUTPUT.PUT_LINE(' Fecha de contrato: '||TO_CHAR(x.hire_date, 'DY, DD-MON-YYYY'));DBMS_OUTPUT.PUT_LINE(' Salida de vaciones: '||salida_vacaciones);DBMS_OUTPUT.PUT_LINE(' Nueva salida de vacaciones: '||nueva_salida_vacaciones);DBMS_OUTPUT.PUT_LINE(' Fecha final salida de vacaciones: '||fecha_salida_vacaciones_final);DBMS_OUTPUT.PUT_LINE('***********************************');DBMS_OUTPUT.PUT_LINE('Fecha de reporte: '||TO_CHAR(sysdate, 'DY, DD-MON-YYYY'));end;-------------------EJERCICIO 6:-------------------set serveroutput ondeclarex employees%Rowtype;fecha_vacaciones varchar2(25);nueva_fecha_vacaciones varchar2(25);fecha_vacaciones_final varchar2(25);bono_adicional number;sueldo_presente_mes number;sueldo_total number;beginselect * into x from employees where employee_id=(select manager_id from employees where employee_id=125);fecha_vacaciones:=to_date(to_char(x.hire_date,'dd')||'/'|| to_char(x.hire_date,'mm')||'/'||2013);nueva_fecha_vacaciones:=add_months((to_date(to_char(x.hire_date,'dd')||'/'|| to_char(x.hire_date,'mm')||'/'||2013)), 3);fecha_vacaciones_final:=LAST_DAY((add_months((to_date(to_char(x.hire_date,'dd')||'/'|| to_char(x.hire_date,'mm')||'/'||2013)), 3)));bono_adicional:=(x.SALARY/30)*((LAST_DAY((add_months((to_date(to_char(x.hire_date,'dd')||'/'|| to_char(x.hire_date,'mm')||'/'||2013)), 3))))-(to_date(to_char(x.hire_date,'dd')||'/'|| to_char(x.hire_date,'mm')||'/'||2013)));sueldo_presente_mes:=x.salary + (nvl(x.commission_pct,0)*x.salary);sueldo_total:=((x.SALARY/30)*((LAST_DAY((add_months((to_date(to_char(x.hire_date,'dd')||'/'|| to_char(x.hire_date,'mm')||'/'||2013)), 3))))-(to_date(to_char(x.hire_date,'dd')||'/'|| to_char(x.hire_date,'mm')||'/'||2013))))+(x.salary +(nvl(x.commission_pct,0)*x.salary));DBMS_OUTPUT.PUT_LINE('***********************************');DBMS_OUTPUT.PUT_LINE(' Nombre empleado: '||x.first_name||' '||x.last_name);DBMS_OUTPUT.PUT_LINE(' Fecha de contrato: '||TO_CHAR(x.hire_date, 'DY, DD-MON-YYYY'));DBMS_OUTPUT.PUT_LINE(' Fecha de vaciones: '||fecha_vacaciones);DBMS_OUTPUT.PUT_LINE(' Nueva fecha de vacaciones: '||nueva_fecha_vacaciones);DBMS_OUTPUT.PUT_LINE(' Fecha final salida de contrato: '||fecha_vacaciones_final);DBMS_OUTPUT.PUT_LINE(rpad('Bono adicional: ',20,' ')||TO_CHAR(bono_adicional, 'L999,999.99'));DBMS_OUTPUT.PUT_LINE(rpad('Sueldo_presente_mes: ',15,' ')||TO_CHAR(sueldo_presente_mes, 'L999,999.99'));DBMS_OUTPUT.PUT_LINE(rpad('Sueldo_Total: ',15,' ')||TO_CHAR(sueldo_total, 'L999,999.99'));DBMS_OUTPUT.PUT_LINE('***********************************');DBMS_OUTPUT.PUT_LINE('Fecha de reporte: '||TO_CHAR(sysdate, 'DY, DD-MON-YYYY'));end;