Advertisement
Aniket_Goku

assi3

Nov 19th, 2020
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 4.02 KB | None | 0 0
  1. CREATE TABLE emp_mst
  2. (
  3.     empno VARCHAR(20) primary key,
  4.     ename VARCHAR(20) NOT NULL,
  5.     city VARCHAR(20),
  6.     dob DATE
  7. );
  8. CREATE TABLE branch
  9. (
  10.     b_code VARCHAR(20) primary key,
  11.     bname VARCHAR(20) NOT NULL,
  12.     br_city VARCHAR(20)
  13. );
  14. CREATE TABLE emp_detail
  15. (
  16.     b_code VARCHAR(20),
  17.     empno VARCHAR(20),
  18.     job VARCHAR(20) NOT NULL,
  19.     basic_sal NUMBER  CHECK(basic_sal>0),
  20.     doj DATE,
  21.     manager_no VARCHAR(20),
  22.     constraints fk_bcode foreign key (b_code) references branch(b_code) ON DELETE cascade,
  23.     constraints fk_eno foreign key (empno) references emp_mst(empno) ON DELETE cascade
  24. );
  25. -- insert
  26. INSERT INTO emp_mst VALUES('E001', 'Youtube','Surat',DATE '2000-05-11');
  27. INSERT INTO emp_mst VALUES('E002', 'Google','Navsari',DATE '1999-11-12');
  28. INSERT INTO emp_mst VALUES('E003', 'Yahoo','Baroda',DATE '2001-01-23');
  29. INSERT INTO emp_mst VALUES('E004', 'Amazon','Bharuch',DATE '2003-07-27');
  30. INSERT INTO emp_mst VALUES('E005', 'Flipkart','Katchh',DATE '2002-06-02');
  31. INSERT INTO emp_mst VALUES('E006', 'Android','Amroli',DATE '2001-07 -13');
  32. INSERT INTO emp_mst VALUES('E007', 'Ios','Ahemdabad',DATE '1992-01 -21');
  33. INSERT INTO emp_mst VALUES('E008', 'Alexa','Jamnagar',DATE '2002-01 -29');
  34. INSERT INTO emp_mst VALUES('E009', 'Snapdragon','Bardoli',DATE '2001-12-14');
  35. INSERT INTO emp_mst VALUES('E010', 'Kapil','Patna',DATE '2001-09-16');
  36.  
  37. --insert
  38. INSERT INTO branch VALUES('B001', 'Vadifaliya','Surat');
  39. INSERT INTO branch VALUES('B002', 'Kotsafil','Bardoli');
  40. INSERT INTO branch VALUES('B003', 'Bhagal','Amroli');
  41. INSERT INTO branch VALUES('B004', 'Sagrampura','Katchh');
  42. INSERT INTO branch VALUES('B005', 'Begampura','Ahemdabad');
  43. INSERT INTO branch VALUES('B006', 'Gopipura','Patna');
  44. INSERT INTO branch VALUES('B007', 'Mahidharpura','Bharuch');
  45. --insert;
  46. INSERT INTO emp_detail VALUES('B001','E002','Staff',15000,DATE '2015-02-21','M01');
  47. INSERT INTO emp_detail VALUES('B002','E003','Clarck',13400,DATE '2016-04-12','M02');
  48. INSERT INTO emp_detail VALUES('B003','E001','Staff',,14500date '2015-03-15','M03');
  49. INSERT INTO emp_detail VALUES('B004','E004','Clarck',15000,DATE '2017-01-29','M04');
  50. INSERT INTO emp_detail VALUES('B005','E005','HR',16900,DATE '2016-05-17','M05');
  51. INSERT INTO emp_detail VALUES('B006','E006','Clarck',20000,DATE '2015-03-15','M06');
  52. INSERT INTO emp_detail VALUES('B001','E007','Staff',14000,DATE '2016-02-23','M01');
  53. INSERT INTO emp_detail VALUES('B003','E008','Staff',175000,DATE '2016-01-22','M03');
  54. INSERT INTO emp_detail VALUES('B004','E009','Clark',14300,DATE '2016-04-21','M04');
  55. INSERT INTO emp_detail VALUES('B005','E010','Staff',16000,DATE '2016-04-14','M05');
  56.  
  57.  
  58. --Q1>
  59.     CREATE OR REPLACE PROCEDURE  p1
  60.     IS
  61.    
  62.     sum_sal NUMBER :=0;
  63.     brh_name VARCHAR(20);
  64.     E_no VARCHAR(20);
  65.     E_name VARCHAR(20);
  66.     d_o_j DATE;
  67.     City VARCHAR(20);
  68.     sal NUMBER;
  69.         CURSOR  c1 IS
  70.         SELECT  bname, empno,ename,doj,city,basic_sal INTO  brh_name,E_no,E_name,d_o_j,City,sal
  71.         FROM(SELECT  bname ,"a".empno ,"b".ename ,doj AS ,"b".city ,basic_sal  
  72.                     FROM   (SELECT *
  73.                                     FROM  emp_detail
  74.                                     ORDER BY doj DESC) "a"
  75.                     join  emp_mst "b"
  76.                     ON "b".empno ="a".empno
  77.                     join  branch "c"
  78.                     ON "c".b_code="a".b_code
  79.                     WHERE   "a".empno ="b".empno AND "c".b_code = "a".b_code
  80.                     ORDER BY doj DESC
  81.                                 )
  82.         WHERE rownum<=5;
  83.        
  84.     BEGIN
  85.         OPEN  c1;
  86.         LOOP
  87.             FETCH c1 INTO  brh_name,E_no,E_name,d_o_j,City,sal;
  88.             EXIT WHEN c1%notfound;
  89.                 DBMS_OUTPUT.put_line(brh_name ||' = ' ||E_no||' = ' ||E_name||' = ' ||d_o_j||' = ' ||City||' = ' ||sal);
  90.                 sum_sal:=sum_sal+sal;
  91.         END LOOP;
  92.         CLOSE c1;
  93.                 DBMS_OUTPUT.put_line(' Total Salary  =>  ' ||sum_sal);
  94.     END  p1;
  95. /
  96. BEGIN
  97.     p1();
  98. END;
  99. /  
  100. --Q2
  101.     CREATE  OR REPLACE TRIGGER tg_wh
  102.     before DELETE ON emp_mst
  103.     FOR each ROW
  104.  
  105.     BEGIN
  106.         IF  TO_CHAR(SYSDATE,'dy') ='sun' THEN
  107.             raise_application_error(-20002,'It is sun day CHAMAN');
  108.         END IF;
  109.         IF  TO_CHAR(SYSDATE,'HH24')<10 OR  TO_CHAR(SYSDATE,'HH24')>=17 THEN
  110.             raise_application_error(-20002,'It is  Out of Time  Dude');
  111.         END IF;
  112.     END tg_wh;
  113.    
  114.     --  delete from emp_mst where empno='E001';
  115.    
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement