Advertisement
viktarb

TASK 1

Feb 5th, 2024 (edited)
1,626
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.54 KB | None | 0 0
  1. -- Práctica adicional:
  2. -- Usando este código
  3. -- Si el salario es mayor que 12000 indicarlo y mostrar la información del empleado y su salario
  4. -- y si no lo es, indicar que ese código de empleado gana menos de 12000
  5.  
  6. DROP TABLE emp purge;
  7. CREATE TABLE emp AS SELECT * FROM employees;
  8. DELETE FROM emp WHERE employee_id = 123;
  9.  
  10.  
  11. DECLARE
  12.   v_min_eid emp.employee_id%TYPE;
  13.   v_max_eid emp.employee_id%TYPE;
  14.   v_contador PLS_INTEGER;
  15.   v_first_name emp.first_name%TYPE;
  16.   v_salary emp.salary%TYPE;
  17.   v_contar_empleados PLS_INTEGER;
  18. BEGIN
  19.   SELECT MIN(employee_id), MAX(employee_id)
  20.   INTO   v_min_eid, v_max_eid
  21.   FROM   emp;
  22.  
  23.   v_contador := v_min_eid;
  24.  
  25.   LOOP
  26.     SELECT COUNT(*)
  27.     INTO   v_contar_empleados
  28.     FROM   emp
  29.     WHERE  employee_id = v_contador;
  30.    
  31.     IF v_contar_empleados = 1 THEN
  32.         SELECT first_name, salary
  33.         INTO   v_first_name, v_salary
  34.         FROM   emp
  35.         WHERE  employee_id = v_contador;
  36.        
  37.         IF v_salary > 12000 THEN
  38.           DBMS_OUTPUT.put_line('El empleado ' || v_contador || ' - Nombre: ' || v_first_name || ' gana más de 12000: ' || v_salary);
  39.         ELSE
  40.           DBMS_OUTPUT.put_line('El empleado ' || v_contador || ' - Nombre: ' || v_first_name || ' no gana más de 12000: ' || v_salary);
  41.         END IF;
  42.        
  43.     ELSE
  44.         DBMS_OUTPUT.put_line('El código ' || v_contador || ' no corresponde a ningún empleado o a más de uno');
  45.     END IF;
  46.    
  47.     v_contador := v_contador + 1;
  48.     EXIT WHEN v_contador > v_max_eid;
  49.   END LOOP;
  50. END;
  51. /
  52.  
Tags: PL/SQL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement