Advertisement
HenX

DAIS_TRIGGER

Feb 28th, 2012
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.08 KB | None | 0 0
  1. CREATE OR REPLACE
  2. TRIGGER checkTrainCrew
  3. AFTER INSERT OR UPDATE
  4. ON TrainCrew
  5. DECLARE
  6.  
  7. CURSOR cursS IS SELECT * FROM Staff;
  8. CURSOR cursTC IS SELECT * FROM TrainCrew;
  9. CURSOR cursTR IS SELECT * FROM TrainRide;
  10.  
  11. scr INT;
  12. dcr INT;
  13. gcr INT;
  14.  
  15. BEGIN
  16.  
  17. FOR cTR IN cursTR LOOP
  18.  
  19.   scr := 0;
  20.   dcr := 0;
  21.   gcr := 0;
  22.  
  23.   FOR cS IN cursS LOOP
  24.     FOR cTC IN cursTC LOOP
  25.       IF (cTR.idTrainRide = cTC.idTrainRide) THEN
  26.         IF(cS.idStaff = cTC.idStaff) THEN
  27.        
  28.           IF(cs.position = 's') THEN
  29.             scr := scr + 1;
  30.           END IF;
  31.        
  32.           IF(cs.position = 'g') THEN
  33.             gcr := gcr + 1;
  34.           END IF;
  35.        
  36.           IF(cs.position = 'd') THEN
  37.             dcr := dcr + 1;
  38.           END IF;
  39.        
  40.           IF (scr > 1 OR dcr > 1 OR gcr > 1)  THEN
  41.            
  42.             DBMS_OUTPUT.PUT_LINE('ERROR');
  43.             DELETE FROM TrainCrew WHERE idStaff = cTC.idStaff AND idTrainRide = cTC.idTrainRide;
  44.             EXIT;
  45.            
  46.           END IF;
  47.         END IF;
  48.       END IF;
  49.     END LOOP;
  50.   END LOOP;
  51. END LOOP;
  52. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement