Guest User

Untitled

a guest
Mar 14th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 3.08 KB | None | 0 0
  1. --active l'affichage pour dbms
  2. SET SERVEROUTPUT ON
  3. /
  4. SELECT * FROM vlille_Client;
  5. SELECT * FROM vlille_Abonnement;
  6. -- la table trajet est vide pour le moment
  7. -- toute les stations sont pleines (velos)
  8. /
  9. DECLARE
  10. BEGIN
  11. -- TEST POUR ENLEVER DES VELOS
  12. -- le client n°1 est abonné mais n'a pas payé ça caution , il ne peut normalement pas prendre de velo
  13. -- essayons de prendre un velo à la sation n°6
  14. paq_vlille.enlever_velo(6, 1);
  15.  
  16. -- le client n°2 est abonné mais n'a pas payé ça caution , il peut donc prendre un velo
  17. -- essayons de lui faire prendre un velo à la sation n°9
  18. paq_vlille.enlever_velo(9,2);
  19. -- faisons lui prendre un velo à la station n°12
  20. paq_vlille.enlever_velo(12,2);
  21.  
  22. -- le client n°3 n'a pas payé sa caution, on va faire en sorte que si:
  23. UPDATE vlille_Client SET cautionPayee = 0 WHERE vlille_Client.id_client = 3;
  24. -- et on va lui faire prendre un velo dans une station on il n'y a plus de velo
  25. -- vidons la station n°14:
  26. UPDATE vlille_Station SET nbVelosPresents = 0 WHERE id_station = 14;
  27. -- et faisont lui prendre un velo dans cette station:
  28. paq_vlille.enlever_velo(14,3);
  29. -- et maintenant sur une station ou il y a des velos, station n°15
  30. paq_vlille.enlever_velo(15,3);
  31.  
  32.  
  33. -- le client n°4 n'est pas abonné
  34. -- essayons tout de même de faire prendre un velo au client n°4 à la station 19
  35. paq_vlille.enlever_velo(19,4);
  36.  
  37.  
  38. -- pause de 5 secondes avant de commencer à ranger les velos pour éviter les
  39. -- erreur de sysdate
  40. DBMS_LOCK.sleep(1);
  41. END;
  42. /
  43. -- TEST POUR RANGER DES VELOS
  44. DECLARE
  45. BEGIN
  46. -- Les stations étant pleine sauf la 9(client n°2 a pris un velo) et la 14(on l'a vidé)
  47. -- Le client n°1 n'a pas réussie à prendre un velo mais on essaye de le ranger
  48. -- à la station n°4
  49. paq_vlille.ranger_velo(4,1);
  50. -- et la ou il y a de la place:
  51. paq_vlille.ranger_velo(9,1);
  52.  
  53. -- On range le velo du client n°2 à la station n°7 (plus de place)
  54. paq_vlille.ranger_velo(7,2);
  55. -- Testons sur la station n°14:
  56. paq_vlille.ranger_velo(14,2);
  57.  
  58.  
  59. -- On range le velo du client n°3 à la station n°9 (plus de place)
  60. paq_vlille.ranger_velo(9,3);
  61.  
  62. --TEST POUR LE CALCUL DES COUPS ET DU DEPASSEMENT DE JOURNEE
  63.  
  64. -- cette fois si il repose son velo moins de 30 mintutes plus tard
  65. INSERT INTO vlille_Trajet(id_client,id_station_deb,debut) VALUES(2,7,SYSDATE()-(29/60/24));
  66. paq_vlille.ranger_velo(7,2);
  67.  
  68. -- puis au bout de 3 heures (donc 5 demis heures payantes)
  69. INSERT INTO vlille_Trajet(id_client,id_station_deb,debut) VALUES(2,7,SYSDATE()-(3/24));
  70. paq_vlille.ranger_velo(7,2);
  71.  
  72. END;
  73. /
  74. DECLARE
  75. BEGIN
  76. -- Le clients 2 a un velo depuis plus d'un jour(2 jours en l'occurence), on va donc l'insérer dans la
  77. -- table trajet ( le trigger fera les modifs nécessaire pour le nb_trajet et pour le
  78. -- nbVelosPresents)
  79. INSERT INTO vlille_Trajet(id_client,id_station_deb,debut) VALUES(2,7,SYSDATE()-2);
  80. -- puis on lui fait ranger son velo au même endroit
  81. paq_vlille.ranger_velo(7,2);
  82. END;
  83. /
  84. SELECT * FROM vlille_Trajet;
  85. -- On pourra remarquer sur cette "affichage que les nombres de velos on bien était mise à jour
  86. SELECT * FROM vlille_Station;
Add Comment
Please, Sign In to add comment