Advertisement
Guest User

Untitled

a guest
Jun 2nd, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE TABLE airport1(
  2.    id int NOT NULL,
  3.    name CHAR(50) NOT NULL,
  4.    location CHAR(50) NOT NULL,
  5.    numberOfPlane int NOT NULL,
  6.    CONSTRAINT airport_pk PRIMARY KEY (id)  
  7. );
  8.  
  9. DROP TABLE airport1;
  10.  
  11. SELECT * FROM airport1;
  12. /*-------------------------------*/
  13. CREATE TABLE airplane1(
  14.   id int NOT NULL,
  15.   name CHAR(50) NOT NULL,
  16.   numberOfSeat int NOT NULL,
  17.   airport_id int,
  18.   CONSTRAINT airplane_pk PRIMARY KEY(id),
  19.   CONSTRAINT fk_airplane
  20.     FOREIGN KEY (airport_id)
  21.     REFERENCES airport1 (id)
  22. );
  23.  
  24. DROP TABLE airplane1;
  25.  
  26.  
  27. /*-------------------------------*/
  28. CREATE TABLE passenger1(
  29.   id int NOT NULL,
  30.   name CHAR(50) NOT NULL,
  31.   phone CHAR(50) NOT NULL,
  32.   mail CHAR(50) NOT NULL,
  33.   CONSTRAINT passenger_pk
  34.     PRIMARY KEY (id)
  35. );
  36.  
  37. DROP TABLE passenger1;
  38.  
  39.  
  40. /*-------------------------------*/
  41. CREATE TABLE flight1(
  42.   flightid int NOT NULL,
  43.   passenger_id int NOT NULL,
  44.   airplane_id int NOT NULL,
  45.   departure_time DATE,
  46.   arrival_time DATE,
  47.   fromWhere CHAR(50),
  48.   toWhere CHAR(50),
  49.   PRIMARY KEY (flightid),
  50.   CONSTRAINT flight_fk1
  51.     FOREIGN KEY (airplane_id)
  52.     REFERENCES airplane1 (id),
  53.   CONSTRAINT flight_fk2
  54.     FOREIGN KEY (passenger_id)
  55.     REFERENCES passenger1 (id)
  56. );
  57.  
  58. DROP TABLE flight1;
  59.  
  60.  
  61.  
  62.  
  63.  
  64. -------------Procedure-------------------
  65.  
  66.  
  67.  
  68. CREATE OR REPLACE PROCEDURE Insert_Airport(airportName IN CHAR, airportLocation IN CHAR, noOfPlane IN int)
  69.   IS
  70.   idAirport int;
  71.   BEGIN
  72.           SELECT MAX(id) INTO idAirport FROM (
  73.           (SELECT id FROM AIRPORT1)
  74.               UNION ALL
  75.           (SELECT id FROM AIRPORT2@LINK_VUDB)  
  76.               UNION ALL
  77.           (SELECT id FROM AIRPORT3@LINK_TRUNGDB)   
  78.               UNION ALL
  79.           (SELECT id FROM AIRPORT4@LINK_LONGDB)        
  80.         );  
  81.         idAirport := idAirport + 1;
  82.     IF (noOfPlane < 10 AND airportLocation = 'HN') THEN --Dung site 1
  83.         INSERT INTO AIRPORT1 VALUES (idAirport, airportName, airportLocation, noOfPlane);
  84.     ELSIF (noOfPlane < 10 AND airportLocation = 'HCM') THEN --Vu site 2
  85.         INSERT INTO AIRPORT2@LINK_VUDB VALUES (idAirport, airportName, airportLocation, noOfPlane);
  86.     ELSIF (noOfPlane >= 10 AND airportLocation = 'DN') THEN --Trung site 3
  87.         INSERT INTO AIRPORT3@LINK_TRUNGDB VALUES (idAirport, airportName, airportLocation, noOfPlane);
  88.     ELSIF (noOfPlane >= 10 AND airportLocation = 'Hue') THEN --Long site 4
  89.         INSERT INTO AIRPORT4@LINK_LONGDB VALUES (idAirport, airportName, airportLocation, noOfPlane);
  90.     ELSE
  91.         dbms_output.put_line('Error to insert');
  92.     END IF;
  93.   END;
  94.  
  95.   ------ insert airplane---------------
  96.  
  97.  
  98.  
  99.   DROP PROCEDURE Insert_Airplane;
  100. CREATE OR REPLACE PROCEDURE Insert_Airplane(airplaneName IN CHAR, noOfSeat IN int, airportID IN int, loc IN CHAR)
  101.   IS
  102.   idAirplane int;
  103.   BEGIN
  104.     SELECT MAX(id) INTO idAirplane FROM (
  105.           (SELECT id FROM AIRPLANE1)
  106.               UNION ALL
  107.           (SELECT id FROM AIRPLANE2@LINK_VUDB)  
  108.               UNION ALL
  109.           (SELECT id FROM AIRPLANE3@LINK_TRUNGDB)  
  110.               UNION ALL
  111.           (SELECT id FROM AIRPLANE4@LINK_LONGDB)
  112.         );  
  113.         idAirplane := idAirplane + 1;
  114.        
  115.     IF (loc ='HN') THEN --Dung
  116.         INSERT INTO AIRPLANE1 VALUES (idAirplane, airplaneName, noOfSeat, airportID);
  117.     ELSIF (loc = 'HCM' ) THEN --Vu
  118.         INSERT INTO AIRPLANE2@LINK_VUDB VALUES (idAirplane, airplaneName, noOfSeat, airportID);
  119.     ELSIF (loc = 'DN') THEN --Trung
  120.         INSERT INTO AIRPLANE3@LINK_TRUNGDB VALUES (idAirplane, airplaneName, noOfSeat, airportID);
  121.     ELSIF (loc = 'HUE') THEN --Long
  122.         INSERT INTO AIRPLANE4@LINK_LONGDB VALUES (idAirplane, airplaneName, noOfSeat, airportID);
  123.     ELSE
  124.         dbms_output.put_line('Error');
  125.     END IF;
  126.   END;
  127.  
  128.   EXEC Insert_Airplane('trungAIRPLANE55', 500, 56);
  129.  
  130.     -----------------insert flight----------------
  131.  
  132.   DROP PROCEDURE Insert_Flight;
  133. CREATE OR REPLACE PROCEDURE Insert_Flight(passengerid IN int, airplaneid IN int, departuretime IN CHAR, arrivaltime IN CHAR, fromwhere IN CHAR, towhere IN CHAR, Loc IN CHAR)
  134.   IS
  135.   fid int;
  136.  
  137.   BEGIN
  138.           SELECT MAX(flightid) INTO fid FROM (
  139.           (SELECT flightid FROM flight1)
  140.               UNION ALL
  141.           (SELECT flightid FROM flight2@LINK_VUDB)
  142.               UNION ALL
  143.           (SELECT flightid FROM flight3@LINK_TRUNGDB)  
  144.               UNION ALL
  145.           (SELECT flightid FROM flight4@LINK_LONGDB)        
  146.         );  
  147.         fid := fid + 1;
  148.  
  149.     IF ( Loc ='HN') THEN --Dung site 1
  150.         INSERT INTO FLIGHT1 VALUES (fid, passengerid, airplaneid, TO_DATE(departuretime,'yyyy/mm/dd HH:MI:SS'),TO_DATE(arrivaltime,'yyyy/mm/dd HH:MI:SS'),fromwhere,towhere);
  151.     ELSIF ( Loc ='HCM') THEN -- site 2
  152.         INSERT INTO FLIGHT2@LINK_VUDB VALUES (fid, passengerid, airplaneid, TO_DATE(departuretime,'yyyy/mm/dd HH:MI:SS'),TO_DATE(arrivaltime,'yyyy/mm/dd HH:MI:SS'),fromwhere,towhere);
  153.     ELSIF ( Loc = 'DN') THEN -- site 2
  154.         INSERT INTO FLIGHT3@LINK_TRUNGDB VALUES (fid, passengerid, airplaneid, TO_DATE(departuretime,'yyyy/mm/dd HH:MI:SS'),TO_DATE(arrivaltime,'yyyy/mm/dd HH:MI:SS'),fromwhere,towhere);
  155.     ELSIF ( Loc = 'Hue' ) THEN -- site 2
  156.         INSERT INTO FLIGHT4@LINK_LONGDB VALUES (fid, passengerid, airplaneid, TO_DATE(departuretime,'yyyy/mm/dd HH:MI:SS'),TO_DATE(arrivaltime,'yyyy/mm/dd HH:MI:SS'),fromwhere,towhere);
  157.     ELSE
  158.         dbms_output.put_line('Error to insert');
  159.     END IF;
  160.   END;
  161.  
  162.  
  163. ---------------------------------------UPDATE AIRPORT--------------------
  164.  
  165. DROP PROCEDURE Update_Airport;
  166. CREATE OR REPLACE PROCEDURE Update_Airport(
  167.   airport_Location IN CHAR,
  168.   airportName IN CHAR,
  169.   noOfPlane IN int
  170.   )
  171.   IS
  172.   airportLocation CHAR;
  173.   BEGIN
  174.     SELECT COUNT(location) INTO airportLocation FROM (
  175.       (SELECT location FROM AIRPORT1)
  176.         UNION ALL
  177.       (SELECT location FROM AIRPORT2@LINK_VUDB)
  178.         UNION ALL
  179.       (SELECT location FROM AIRPORT3@LINK_TRUNGDB)
  180.         UNION ALL
  181.       (SELECT location FROM AIRPORT4@LINK_LONGDB)
  182.     ) WHERE location = airport_Location;
  183.     IF (airportLocation > 0 AND airport_Location = 'HN' ) THEN --site 1
  184.     BEGIN
  185.       UPDATE AIRPORT1
  186.       SET numberOfPlane = noOfPlane
  187.       WHERE name = airportName;
  188.     END;
  189.     ELSIF (airportLocation > 0 AND airport_Location = 'HCM') THEN -- site 2
  190.     BEGIN
  191.       UPDATE AIRPORT2@LINK_VUDB
  192.       SET numberOfPlane = noOfPlane
  193.       WHERE name = airportName;
  194.     END;
  195.     ELSIF (airportLocation > 0 AND airport_Location = 'DN') THEN --site 3
  196.     BEGIN
  197.       UPDATE AIRPORT3@LINK_TRUNGDB
  198.       SET numberOfPlane = noOfPlane
  199.       WHERE name = airportName;
  200.     END;
  201.     ELSIF (airportLocation > 0 AND airport_Location = 'Hue') THEN --site 4
  202.     BEGIN
  203.       UPDATE AIRPORT4@LINK_LONGDB
  204.       SET numberOfPlane = noOfPlane
  205.       WHERE name = airportName;
  206.     END;
  207.     END IF;
  208.   END;
  209.  
  210.  
  211. ----------------Update FLIGHT------------------
  212. DROP PROCEDURE Update_Flight;
  213. CREATE OR REPLACE PROCEDURE Update_Flight(
  214.   fid IN CHAR,
  215.   passengerid IN int,
  216.   airplaneid IN int,
  217.   departuretime IN CHAR,
  218.   arrivaltime IN CHAR,
  219.   from_where IN CHAR,
  220.   to_where IN CHAR,
  221.   Loc IN CHAR)
  222.   IS
  223.   countid int;
  224.   BEGIN
  225.     SELECT COUNT(location) INTO countid FROM (
  226.       (SELECT location FROM FLIGHT1)
  227.         UNION ALL
  228.       (SELECT location FROM FLIGHT2@LINK_VUDB)
  229.         UNION ALL
  230.       (SELECT location FROM FLIGHT3@LINK_TRUNGDB)
  231.         UNION ALL
  232.       (SELECT location FROM FLIGHT4@LINK_LONGDB)
  233.     ) WHERE location = Loc;
  234.     IF (countid >0 AND Loc = 'HN' ) THEN --site 1
  235.     BEGIN
  236.       UPDATE FLIGHT1
  237.       SET departure_time = TO_DATE(departuretime,'yyyy/mm/dd HH:MI:SS'),
  238.       arrival_time = TO_DATE(arrivaltime,'yyyy/mm/dd HH:MI:SS'),
  239.       fromwhere = from_where,
  240.       towhere=to_where
  241.       WHERE flightid = fid;
  242.     END;
  243.     ELSIF (countid >0 AND Loc ='HCM') THEN -- site 2
  244.     BEGIN
  245.       UPDATE FLIGHT2@LINK_VUDB
  246.       SET departure_time = TO_DATE(departuretime,'yyyy/mm/dd HH:MI:SS'),
  247.       arrival_time = TO_DATE(arrivaltime,'yyyy/mm/dd HH:MI:SS'),
  248.       fromwhere = from_where,
  249.       towhere=to_where
  250.       WHERE flightid = fid;
  251.     END;
  252.     ELSIF (countid >0 AND Loc ='DN') THEN --site 3
  253.     BEGIN
  254.       UPDATE FLIGHT3@LINK_TRUNGDB
  255.       SET departure_time = TO_DATE(departuretime,'yyyy/mm/dd HH:MI:SS'),
  256.       arrival_time = TO_DATE(arrivaltime,'yyyy/mm/dd HH:MI:SS'),
  257.       fromwhere = from_where,
  258.       towhere=to_where
  259.       WHERE flightid = fid;
  260.     END;
  261.     ELSIF (countid >0 AND Loc = 'HUE') THEN --site 4
  262.     BEGIN
  263.       UPDATE FLIGHT4@LINK_LONGDB
  264.       SET departure_time = TO_DATE(departuretime,'yyyy/mm/dd HH:MI:SS'),
  265.       arrival_time = TO_DATE(arrivaltime,'yyyy/mm/dd HH:MI:SS'),
  266.       fromwhere = from_where,
  267.       towhere=to_where
  268.       WHERE flightid = fid;
  269.     END;
  270.     END IF;
  271.   END;
  272.  
  273.  
  274. ---delete airplane-------------
  275. DROP PROCEDURE deleteAirplane;
  276. CREATE PROCEDURE deleteAirplane (
  277. aID IN int
  278. )
  279. IS
  280. a_ID int;
  281. BEGIN
  282. SELECT MAX(id) INTO a_ID FROM (
  283.   (SELECT id FROM airplane1)
  284.   UNION ALL
  285. (SELECT id FROM airplane2@link_vudb)
  286.   UNION ALL
  287.   (SELECT id FROM airplane3@link_trungdb)
  288.   UNION ALL
  289.   (SELECT id FROM airplane4@link_longdb)
  290.   );
  291.    IF(a_ID <5) THEN
  292.    BEGIN
  293.    DELETE FROM airplane1
  294.    WHERE id = aID;
  295.    END;
  296.    ELSIF(a_id >=5 AND a_id <10) THEN
  297.    BEGIN
  298.    DELETE FROM airplane2@link_vudb
  299.    WHERE id = aID;
  300.    END;
  301.    ELSIF (a_id >=10 AND a_ID<15) THEN
  302.    BEGIN
  303.    DELETE FROM airplane3@link_trungdb
  304.    WHERE id=aid;
  305.    END;
  306.    ELSIF (a_id>=15 AND a_id <20) THEN
  307.    BEGIN
  308.    DELETE FROM airplane4@link_longdb
  309.    WHERE id=aid;
  310.    END;
  311.    END IF;
  312. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement