Advertisement
Guest User

ejercicio1

a guest
Nov 18th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. /*
  2. Realizar un procedimiento que incremente el salario el 20% a los empleados que
  3. tengan una comisión igual al 25% (campo commision_pct) del salario, y visualice
  4. el nombre, comisión y salario antiguo, y el nombre, comisión y salario nuevo
  5. de todos los empleados modificados. (3 puntos)
  6. */
  7. create or replace PROCEDURE EJER1
  8. AS
  9. -- CREAR CURSOR
  10. CURSOR cur IS SELECT first_name, commission_pct, salary
  11. FROM employees
  12. WHERE commission_pct = 0.25
  13. FOR UPDATE;
  14. -- ALMACENAR CURSOR
  15. v_cur cur%rowtype;
  16. BEGIN
  17. FOR employee IN cur LOOP
  18. DBMS_OUTPUT.PUT_LINE('-----------------');
  19. DBMS_OUTPUT.PUT_LINE('Datos previos:');
  20. DBMS_OUTPUT.PUT_LINE('Nombre: '||
  21. employee.first_name||
  22. ' Comisión: '||
  23. employee.commission_pct||
  24. ' Salario: '||
  25. employee.salary);
  26. UPDATE employees SET salary = salary*1.2 WHERE CURRENT OF cur;
  27. DBMS_OUTPUT.PUT_LINE('-----------------');
  28. DBMS_OUTPUT.PUT_LINE('Datos actualizados:');
  29. DBMS_OUTPUT.PUT_LINE('Nombre: '||
  30. employee.first_name||
  31. ' Comisión: '||
  32. employee.commission_pct||
  33. ' Salario: '||
  34. employee.salary);
  35. END LOOP;
  36. END EJER1;
  37. ------------------------------------------------------------------------------------------
  38. SET SERVEROUTPUT ON
  39. BEGIN
  40. EJER1();
  41. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement