Advertisement
Juansero29

PL/SQL code in Oracle.

Feb 11th, 2017
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.34 KB | None | 0 0
  1. DROP TABLE tlignes PURGE;
  2. CREATE TABLE tlignes (
  3.   lignes VARCHAR2(500)
  4. );
  5.  
  6. VARIABLE vNoCat CHAR(4);
  7.  
  8. SELECT *
  9. FROM tVehicule2017;
  10.  
  11. PROMPT Saisir le numero de la categorie
  12. ACCEPT vNoCat
  13.  
  14. DECLARE
  15.   dMsg     VARCHAR2(100);
  16.   dNoCat   CHAR(4) := '&vNoCat';
  17.   dNoCat2  CHAR(4);
  18.   dNoVeh   CHAR(5);
  19.   dImmat   CHAR(10);
  20.   dCouleur VARCHAR2(30);
  21.   dModele  VARCHAR2(30);
  22.   CURSOR cur IS SELECT
  23.                   noVeh,
  24.                   immat,
  25.                   couleur,
  26.                   modele
  27.                 FROM Tvehicule2017
  28.                 WHERE noCat = '&vNoCat' AND noVeh NOT IN (SELECT noVeh
  29.                                                           FROM tLocation2017);
  30.  
  31. BEGIN
  32.  
  33.   dMsg := 'Cette categorie est inconnue';
  34.   SELECT NOCAT
  35.   INTO DNOCAT2
  36.   FROM tCategorie2017
  37.   WHERE noCat = dNoCat;
  38.  
  39.   OPEN cur;
  40.   FETCH cur INTO dNoVeh, dImmat, dCouleur, dModele;
  41.  
  42.   IF cur%NOTFOUND
  43.   THEN INSERT INTO tlignes VALUES ('Pas de vehicules libres dans cette categorie');
  44.   ELSE
  45.  
  46.     WHILE cur%FOUND
  47.     LOOP
  48.       INSERT INTO tlignes VALUES (dNoVeh || dImmat || dCouleur || dModele);
  49.       FETCH cur INTO dNoVeh, dImmat, dCouleur, dModele;
  50.     END LOOP;
  51.  
  52.   END IF;
  53.  
  54.   CLOSE cur;
  55.  
  56.   EXCEPTION
  57.   WHEN NO_DATA_FOUND THEN INSERT INTO tlignes VALUES (dMsg);
  58.  
  59. END;
  60. /
  61. SELECT *
  62. FROM tlignes;
  63.  
  64. SET echo ON;
  65. SET verify ON;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement