Advertisement
Aniket_Goku

solution 1

Jan 26th, 2021
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.96 KB | None | 0 0
  1. CREATE TABLE student
  2. (
  3.     rollno NUMBER  primary key,
  4.     name VARCHAR(20) NOT NULL,
  5.     class VARCHAR(20) CHECK(class IN('fybca','sybca','tybca','graduate')),
  6.     result VARCHAR(20) CHECK(result IN('pass','faile','status'))
  7. );
  8. CREATE TABLE Result
  9. (
  10.     rollno NUMBER,
  11.     m_sub1 NUMBER CHECK(m_sub1>=0 AND m_sub1<=100),
  12.     m_sub2 NUMBER CHECK(m_sub2>=0 AND m_sub2<=100),
  13.     m_sub3 NUMBER CHECK(m_sub3>=0 AND m_sub3<=100),
  14.     foreign key(rollno) references student(rollno) ON DELETE cascade
  15. );
  16.  
  17. --sequence
  18. CREATE sequence s1
  19. increment BY 1
  20. START WITH 1
  21. minvalue 1
  22. maxvalue 200
  23. ORDER;
  24.  
  25. --insertion
  26. INSERT INTO student VALUES(s1.NEXTVAL,'Aniket','sybca','status');
  27. INSERT INTO student VALUES(s1.NEXTVAL,'Aadesh','fybca','status');
  28. INSERT INTO student VALUES(s1.NEXTVAL,'Darshan','tybca','status');
  29. INSERT INTO student VALUES(s1.NEXTVAL,'Ankit','sybca','status');
  30. INSERT INTO student VALUES(s1.NEXTVAL,'Dhruv','fybca','status');
  31.  
  32.  
  33.  
  34.  
  35.  
  36. CREATE OR REPLACE TRIGGER t1
  37. after INSERT OR UPDATE ON result
  38. FOR each ROW
  39. DECLARE
  40. c VARCHAR(10);
  41. CURSOR c1
  42.     IS SELECT class
  43.     FROM student
  44.     WHERE rollno=:NEW.rollno;
  45.  
  46. BEGIN
  47.    
  48.     IF inserting THEN
  49.         IF(:NEW.m_sub1<33 OR :NEW.m_sub2<33 OR :NEW.m_sub3<33 ) THEN
  50.             UPDATE student
  51.             SET result='faile'
  52.             WHERE rollno=:NEW.rollno;
  53.         ELSE
  54.        
  55.             UPDATE student
  56.             SET result='pass'
  57.             WHERE rollno=:NEW.rollno;
  58.             OPEN c1;
  59.             FETCH c1 INTO c;
  60.            
  61.             IF(c='fybca') THEN
  62.                 UPDATE student
  63.                 SET class='sybca'
  64.                 WHERE rollno=:NEW.rollno;
  65.             ELSIF(c='sybca') THEN
  66.                 UPDATE student
  67.                 SET class='tybca'
  68.                 WHERE rollno=:NEW.rollno;
  69.             ELSIF(c='tybca') THEN
  70.                 UPDATE student
  71.                 SET class='graduated'
  72.                 WHERE rollno=:NEW.rollno;  
  73.             END IF;
  74.             CLOSE c1;
  75.         END IF;
  76.  
  77.     END IF;
  78. END t1;
  79. /
  80.    
  81.        
  82. --insertion result
  83. INSERT INTO Result VALUES(21,35,46,87);
  84. INSERT INTO Result VALUES(22,98,87,65);
  85. INSERT INTO Result VALUES(23,98,87,65);
  86. INSERT INTO Result VALUES(24,47,76,66);
  87. INSERT INTO Result VALUES(25,88,66,25);
  88.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement