Unlock the Potential of Programming: Coding for Solutions

Thursday, July 2, 2015

OraclePLSQL--Indefinite Loop Pl/sql

Indefinite Loop


Decodes the codes J




DECLARE
    TYPE EmpRecord
      IS RECORD (ssn           employee.ssn%TYPE,
                 LName         employee.LName%TYPE,
                 DName         department.DName%TYPE,
                 BonusPayment  NUMBER(6));

    InactiveEmp     EmpRecord;
    EmpsRemaining   PLS_INTEGER;

BEGIN
  LOOP
    SELECT essn, LName, DName, 0
    INTO InactiveEmp
    FROM employee, department, works_on
    WHERE employee.dno = department.dnumber
    AND employee.ssn = works_on.essn
    AND hours = (SELECT MIN(hours) FROM works_on)
    AND ROWNUM <= 1;

    UPDATE department
    SET MgrSSN = NULL
    WHERE MgrSSN = InactiveEmp.ssn;

    UPDATE employee
    SET SuperSSN = NULL
    WHERE SuperSSN = InactiveEmp.ssn;

    DELETE FROM dependent
    WHERE essn = InactiveEmp.ssn;

    DELETE FROM works_on
    WHERE essn = InactiveEmp.ssn;

    DELETE FROM employee
    WHERE ssn = InactiveEmp.ssn;
    COMMIT;
    dbms_output.put_line ('Inactive employee has been transferred: ' ||
                           InactiveEmp.LName);

    SELECT COUNT(*)
    INTO EmpsRemaining
    FROM employee;

    EXIT WHEN EmpsRemaining <= 5;
  END LOOP;
END;


anonymous block completed

Inactive employee has been transferred: Umer
Inactive employee has been transferred: Ahmed
Inactive employee has been transferred: Sana
Inactive employee has been transferred: Rafique

Inactive employee has been transferred: Khizer

No comments:

Post a Comment