parent
b6593c81d1
commit
82dbe8cb00
@ -0,0 +1,159 @@
|
|||||||
|
-- Exercice 1
|
||||||
|
DROP TABLE tligne;
|
||||||
|
CREATE TABLE tligne (ligne varchar2(100));
|
||||||
|
|
||||||
|
set echo off;
|
||||||
|
set verify off;
|
||||||
|
set feed off;
|
||||||
|
|
||||||
|
variable vnumvehicule char(5)
|
||||||
|
variable toto char(5)
|
||||||
|
|
||||||
|
prompt Entrer le numero du vehicule :
|
||||||
|
|
||||||
|
accept vnumvehicule
|
||||||
|
|
||||||
|
declare
|
||||||
|
|
||||||
|
dimmatriculation char(10);
|
||||||
|
dmodele varchar2(30);
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
select immat, modele into dimmatriculation, dmodele
|
||||||
|
from Tvehicule2017
|
||||||
|
where noveh='&vnumvehicule';
|
||||||
|
|
||||||
|
Insert into tligne values (dimmatriculation||dmodele);
|
||||||
|
|
||||||
|
exception
|
||||||
|
when no_data_found then
|
||||||
|
insert into tligne values ('&vnumvehicule'||'de vehicule inconnu');
|
||||||
|
end;
|
||||||
|
.
|
||||||
|
/
|
||||||
|
select * from tligne;
|
||||||
|
|
||||||
|
set echo on;
|
||||||
|
set verify on;
|
||||||
|
set feed on;
|
||||||
|
|
||||||
|
-- Exercice 2
|
||||||
|
|
||||||
|
DROP TABLE tligne;
|
||||||
|
CREATE TABLE tligne (ligne varchar2(100));
|
||||||
|
|
||||||
|
set echo off;
|
||||||
|
set verify off;
|
||||||
|
set feed off;
|
||||||
|
|
||||||
|
variable vnoclient char(4)
|
||||||
|
|
||||||
|
prompt Entrer le numero du client :
|
||||||
|
accept vnoclient
|
||||||
|
|
||||||
|
declare
|
||||||
|
dnovehicule char(5);
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
select noveh into dnovehicule
|
||||||
|
from Tlocation2017
|
||||||
|
where noclient='&vnoclient';
|
||||||
|
|
||||||
|
Insert into tligne values ('vehicule '||dnovehicule||' loue par '||'&vnoclient');
|
||||||
|
|
||||||
|
exception
|
||||||
|
when no_data_found then
|
||||||
|
insert into tligne values ('aucune location pour '||'&vnoclient');
|
||||||
|
|
||||||
|
when too_many_rows then
|
||||||
|
insert into tligne values ('plusieurs locations pour '||'&vnoclient');
|
||||||
|
|
||||||
|
end;
|
||||||
|
.
|
||||||
|
/
|
||||||
|
select * from tligne;
|
||||||
|
|
||||||
|
set echo on;
|
||||||
|
set verify on;
|
||||||
|
set feed on;
|
||||||
|
|
||||||
|
-- Exercice 3
|
||||||
|
|
||||||
|
DROP TABLE tligne;
|
||||||
|
CREATE TABLE tligne (ligne varchar2(100));
|
||||||
|
|
||||||
|
-- set echo off;
|
||||||
|
-- set verify off;
|
||||||
|
-- set feed off;
|
||||||
|
|
||||||
|
variable vnovehicule char(5);
|
||||||
|
variable vdateretour date;
|
||||||
|
variable vkmfin number;
|
||||||
|
|
||||||
|
prompt Entrer le numero du vehicule :
|
||||||
|
accept vnovehicule
|
||||||
|
|
||||||
|
prompt Entrer la date de retour :
|
||||||
|
accept vdateretour
|
||||||
|
|
||||||
|
prompt Entrer le kilometrage de fin :
|
||||||
|
accept vkmfin
|
||||||
|
|
||||||
|
declare
|
||||||
|
|
||||||
|
dnovehicule char(5);
|
||||||
|
ddatedebut date;
|
||||||
|
dkmdeb number;
|
||||||
|
dnoclient char(4);
|
||||||
|
|
||||||
|
dmessage varchar2(100);
|
||||||
|
|
||||||
|
begin
|
||||||
|
|
||||||
|
dmessage:='numero de vehicule inconnu';
|
||||||
|
|
||||||
|
select noveh into dnovehicule
|
||||||
|
from Tvehicule2017
|
||||||
|
where noveh='&vnovehicule';
|
||||||
|
|
||||||
|
dmessage:='Vehicule pas en cours de location';
|
||||||
|
|
||||||
|
select noclient into dnoclient
|
||||||
|
from Tlocation2017
|
||||||
|
where noveh='&vnovehicule';
|
||||||
|
|
||||||
|
select datedeb, kmdeb, noclient into ddatedebut, dkmdeb, dnoclient
|
||||||
|
from Tlocation2017
|
||||||
|
where noveh='&vnovehicule';
|
||||||
|
|
||||||
|
if ddatedebut > &vdateretour
|
||||||
|
then Insert into tligne values ('PB date de retour inf date debut');
|
||||||
|
end if;
|
||||||
|
|
||||||
|
if dkmdeb > &vkmfin
|
||||||
|
then Insert into tligne values ('PB Km de retour inf KM debut');
|
||||||
|
end if;
|
||||||
|
|
||||||
|
-- Insert into Tlocatretour2017 values (dnoclient,'&vnovehicule',ddatedebut,dkmdeb,&vkmfin,&vdateretour);
|
||||||
|
|
||||||
|
Insert into Tlocatretour2017 values (dnoclient,'&vnovehicule',ddatedebut,dkmdeb,&vkmfin,to_date('15-12-2016','DD-MM-YYYY'));
|
||||||
|
|
||||||
|
Insert into tligne values ('retour ok');
|
||||||
|
|
||||||
|
exception
|
||||||
|
when no_data_found then insert into tligne values (dmessage);
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
.
|
||||||
|
/
|
||||||
|
|
||||||
|
select * from tligne;
|
||||||
|
|
||||||
|
-- set echo on;
|
||||||
|
-- set verify on;
|
||||||
|
-- set feed on;
|
||||||
|
|
||||||
|
|
@ -0,0 +1,62 @@
|
|||||||
|
-- Exercice 2
|
||||||
|
-- TEST C001
|
||||||
|
|
||||||
|
-- VE001 VE001 30-JAN-17 clio 3
|
||||||
|
-- VE002 VE002 28-JAN-17 308
|
||||||
|
-- Nombre de locations en cours pour le client C001 est de 2
|
||||||
|
|
||||||
|
DROP TABLE tligne;
|
||||||
|
CREATE TABLE tligne (ligne varchar2(200));
|
||||||
|
|
||||||
|
set echo off;
|
||||||
|
set verify off;
|
||||||
|
set feed off;
|
||||||
|
|
||||||
|
variable vclient char(4);
|
||||||
|
|
||||||
|
prompt Entrer le numero du client:
|
||||||
|
accept vnoclient
|
||||||
|
|
||||||
|
declare
|
||||||
|
dnocat Tvehicule2017.nocat%TYPE;
|
||||||
|
dnoveh Tlocation2017.noveh%TYPE;
|
||||||
|
ddatedeb Tlocation2017.datedeb%TYPE;
|
||||||
|
dmodele Tvehicule2017.modele%TYPE;
|
||||||
|
dnombreloc number;
|
||||||
|
|
||||||
|
cursor r is
|
||||||
|
select nocat, Tlocation2017.noveh, datedeb, modele
|
||||||
|
from Tlocation2017, Tvehicule2017
|
||||||
|
where noclient='&vnoclient' and Tlocation2017.noveh= Tvehicule2017.noveh
|
||||||
|
order by nocat, noveh;
|
||||||
|
|
||||||
|
begin
|
||||||
|
open r;
|
||||||
|
|
||||||
|
fetch r into dnocat, dnoveh, ddatedeb, dmodele;
|
||||||
|
while r%found
|
||||||
|
loop
|
||||||
|
insert into tligne values (dnoveh||' '||dnoveh||' '||ddatedeb||' '||dmodele);
|
||||||
|
fetch r into dnocat, dnoveh, ddatedeb, dmodele;
|
||||||
|
end loop;
|
||||||
|
close r;
|
||||||
|
|
||||||
|
select count(noclient) into dnombreloc
|
||||||
|
from Tlocation2017
|
||||||
|
where noclient='&vnoclient';
|
||||||
|
|
||||||
|
insert into tligne values ('Nombre de locations en cours pour le client '||'&noclient'||' est de '||dnombreloc);
|
||||||
|
|
||||||
|
exception
|
||||||
|
when no_data_found then
|
||||||
|
insert into tligne values ('Pas de vehicule libre');
|
||||||
|
|
||||||
|
end;
|
||||||
|
.
|
||||||
|
/
|
||||||
|
|
||||||
|
select * from tligne;
|
||||||
|
|
||||||
|
set echo on;
|
||||||
|
set verify on;
|
||||||
|
set feed on;
|
@ -0,0 +1,40 @@
|
|||||||
|
-- Exercice 3
|
||||||
|
-- Afficher le nombre de véhicules par catégorie.
|
||||||
|
|
||||||
|
DROP TABLE tligne;
|
||||||
|
CREATE TABLE tligne (ligne varchar2(300));
|
||||||
|
|
||||||
|
set echo off;
|
||||||
|
set verify off;
|
||||||
|
set feed off;
|
||||||
|
|
||||||
|
declare
|
||||||
|
|
||||||
|
dnocat Tvehicule2017.nocat%TYPE;
|
||||||
|
dnbveh number;
|
||||||
|
|
||||||
|
cursor r is
|
||||||
|
select nocat, count(nocat)
|
||||||
|
from Tvehicule2017
|
||||||
|
group by nocat
|
||||||
|
order by nocat;
|
||||||
|
|
||||||
|
begin
|
||||||
|
open r;
|
||||||
|
fetch r into dnocat, dnbveh;
|
||||||
|
|
||||||
|
while r%found
|
||||||
|
loop
|
||||||
|
insert into tligne values (dnocat ||' '||dnbveh);
|
||||||
|
fetch r into dnocat, dnbveh;
|
||||||
|
end loop;
|
||||||
|
close r;
|
||||||
|
end;
|
||||||
|
.
|
||||||
|
/
|
||||||
|
|
||||||
|
select * from tligne;
|
||||||
|
|
||||||
|
set echo on;
|
||||||
|
set verify on;
|
||||||
|
set feed on;
|
@ -0,0 +1,84 @@
|
|||||||
|
---------------------------------------- Exercice 1 ----------------------------------------
|
||||||
|
DROP TABLE TLIGNE;
|
||||||
|
CREATE TABLE TLIGNE(LIGNE VARCHAR2(500));
|
||||||
|
|
||||||
|
-- start ../part1.sql
|
||||||
|
|
||||||
|
set echo off;
|
||||||
|
set verify off;
|
||||||
|
set feed off;
|
||||||
|
|
||||||
|
VARIABLE vreflog CHAR(4)
|
||||||
|
PROMPT Reference logement ?
|
||||||
|
ACCEPT vreflog
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
|
||||||
|
dloyer TLOGT2018.LOYER%type;
|
||||||
|
dsuperf TLOGT2018.SUPERF%type;
|
||||||
|
dnoloc TLOGT2018.NOLOC%type;
|
||||||
|
dnomloc TCLIENT2018.NOMCLI%type;
|
||||||
|
dnblog NUMBER(4);
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
SELECT COUNT(*)
|
||||||
|
INTO dnblog
|
||||||
|
FROM TLOGT2018
|
||||||
|
WHERE REFLOG LIKE '&vreflog';
|
||||||
|
|
||||||
|
IF dnblog != 0 THEN
|
||||||
|
SELECT SUPERF, LOYER, NOLOC
|
||||||
|
INTO dsuperf, dloyer, dnoloc
|
||||||
|
FROM TLOGT2018
|
||||||
|
WHERE REFLOG LIKE '&vreflog';
|
||||||
|
|
||||||
|
IF dnoloc != 'NULL' THEN
|
||||||
|
SELECT NOMCLI
|
||||||
|
INTO dnomloc
|
||||||
|
FROM TCLIENT2018
|
||||||
|
WHERE NOCLI = dnoloc;
|
||||||
|
ELSE
|
||||||
|
dnomloc := 'Locataire inconnu';
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
INSERT INTO TLIGNE VALUES('Superficie : ' || TO_CHAR(dsuperf) || ' Loyer : ' || TO_CHAR(dloyer) || ' Locataire : ' || TO_CHAR(dnomloc));
|
||||||
|
|
||||||
|
ELSE
|
||||||
|
INSERT INTO TLIGNE VALUES('Logement inconnu');
|
||||||
|
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
---------------------------------------- Terminal output ----------------------------------------
|
||||||
|
--Reference logement ?
|
||||||
|
--L001 (cas où il n'y a pas de logement en cours )
|
||||||
|
|
||||||
|
--LIGNE
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
--Superficie : 90 Loyer : 450 Locataire : Locataire inconnu
|
||||||
|
|
||||||
|
|
||||||
|
--L002 (cas où il y a un locataire)
|
||||||
|
|
||||||
|
--LIGNE
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
--Superficie : 60 Loyer : 400 Locataire : Martin
|
||||||
|
|
||||||
|
|
||||||
|
--L999 (cas où le logement n'existe pas)
|
||||||
|
|
||||||
|
--LIGNE
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
--Logement inconnu
|
||||||
|
|
||||||
|
.
|
||||||
|
/
|
||||||
|
|
||||||
|
SELECT * FROM TLIGNE;
|
||||||
|
|
||||||
|
set verify on;
|
||||||
|
set feed on;
|
||||||
|
set echo on;
|
@ -0,0 +1,76 @@
|
|||||||
|
---------------------------------------- Exercice 2 ----------------------------------------
|
||||||
|
DROP TABLE TLIGNE;
|
||||||
|
CREATE TABLE TLIGNE(LIGNE VARCHAR2(500));
|
||||||
|
|
||||||
|
set echo off;
|
||||||
|
set verify off;
|
||||||
|
set feed off;
|
||||||
|
|
||||||
|
-- start ../part1.sql
|
||||||
|
|
||||||
|
VARIABLE vnoloc CHAR(6)
|
||||||
|
PROMPT Numero client ?
|
||||||
|
ACCEPT vnoloc
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
|
||||||
|
dreflog TLOGT2018.REFLOG%type;
|
||||||
|
dloyer TLOGT2018.REFLOG%type;
|
||||||
|
dmessage VARCHAR2(500);
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
SELECT REFLOG, LOYER
|
||||||
|
INTO dreflog, dloyer
|
||||||
|
FROM TLOGT2018
|
||||||
|
WHERE NOLOC = '&vnoloc';
|
||||||
|
|
||||||
|
dmessage := 'Client : ' || TO_CHAR(:vnoloc) || ' Reference : ' || TO_CHAR(dreflog) || ' Loyer : ' || TO_CHAR(dloyer);
|
||||||
|
|
||||||
|
INSERT INTO TLIGNE VALUES(dmessage);
|
||||||
|
|
||||||
|
EXCEPTION
|
||||||
|
WHEN NO_DATA_FOUND THEN
|
||||||
|
dmessage := 'Pas de location.';
|
||||||
|
INSERT INTO TLIGNE VALUES(dmessage);
|
||||||
|
WHEN TOO_MANY_ROWS THEN
|
||||||
|
dmessage := 'Plusieurs locations.';
|
||||||
|
INSERT INTO TLIGNE VALUES(dmessage);
|
||||||
|
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
---------------------------------------- Terminal output ----------------------------------------
|
||||||
|
|
||||||
|
--Numero client ? (cas où il n'y a pas de location)
|
||||||
|
--CL0001
|
||||||
|
|
||||||
|
--LIGNE
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
--Pas de location.
|
||||||
|
|
||||||
|
|
||||||
|
--Numero client ? (cas où il y a plusieurs locations)
|
||||||
|
--CL0002
|
||||||
|
|
||||||
|
--LIGNE
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
--Plusieurs locations
|
||||||
|
|
||||||
|
|
||||||
|
--Numero client ? (cas où il n'y a qu'une location)
|
||||||
|
--CL0004
|
||||||
|
|
||||||
|
--LIGNE
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
--Client : Reference : L003 Loyer : 320
|
||||||
|
|
||||||
|
|
||||||
|
.
|
||||||
|
/
|
||||||
|
|
||||||
|
SELECT * FROM TLIGNE;
|
||||||
|
|
||||||
|
set verify on;
|
||||||
|
set feed on;
|
||||||
|
set echo on;
|
@ -0,0 +1,114 @@
|
|||||||
|
---------------------------------------- Exercice 3 ----------------------------------------
|
||||||
|
DROP TABLE TLIGNE;
|
||||||
|
CREATE TABLE TLIGNE(LIGNE VARCHAR2(500));
|
||||||
|
|
||||||
|
set echo off;
|
||||||
|
set verify off;
|
||||||
|
set feed off;
|
||||||
|
|
||||||
|
ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/YYYY';
|
||||||
|
|
||||||
|
-- start ../part1.sql
|
||||||
|
|
||||||
|
VARIABLE vnouveaunoloc CHAR(6)
|
||||||
|
VARIABLE vdatechangement DATE
|
||||||
|
VARIABLE vreflog CHAR(4)
|
||||||
|
|
||||||
|
PROMPT Numero du nouveau locataire ?
|
||||||
|
ACCEPT vnewnoloc
|
||||||
|
PROMPT Saisir la date de changement (format : jj/mm/aaaa)
|
||||||
|
ACCEPT vdatechangement
|
||||||
|
PROMPT Reference logement ?
|
||||||
|
ACCEPT vreflog
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
dreflog TLOGT2018.REFLOG%type;
|
||||||
|
dnewnoloc TCLIENT2018.NOCLI%type;
|
||||||
|
doldnoloc TCLIENT2018.NOCLI%type;
|
||||||
|
dmessage VARCHAR2(500);
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
dmessage := 'Reference de logement inconnue.';
|
||||||
|
SELECT REFLOG
|
||||||
|
INTO dreflog
|
||||||
|
FROM TLOGT2018
|
||||||
|
WHERE REFLOG = '&vreflog';
|
||||||
|
|
||||||
|
dmessage := 'Locataire inconnu.';
|
||||||
|
SELECT NOLOC
|
||||||
|
INTO doldnoloc
|
||||||
|
FROM TLOCATION2018
|
||||||
|
WHERE REFLOG = '&vreflog'
|
||||||
|
AND FINLOC IS NULL;
|
||||||
|
|
||||||
|
dmessage := 'Client inconnu.';
|
||||||
|
SELECT NOCLI
|
||||||
|
INTO dnewnoloc
|
||||||
|
FROM TCLIENT2018
|
||||||
|
WHERE NOCLI = '&vnewnoloc';
|
||||||
|
|
||||||
|
UPDATE TLOCATION2018
|
||||||
|
SET FINLOC = '&vdatechangement'
|
||||||
|
WHERE FINLOC IS NULL
|
||||||
|
AND REFLOG = '&vreflog';
|
||||||
|
|
||||||
|
INSERT INTO TLOCATION2018
|
||||||
|
VALUES('&vreflog', '&vdatechangement', NULL, '&vnewnoloc');
|
||||||
|
|
||||||
|
INSERT INTO TLIGNE VALUES('Depart du locataire nr. ' || TO_CHAR(doldnoloc) || ' du logement nr. ' || TO_CHAR(dreflog) || ' enregistre.');
|
||||||
|
INSERT INTO TLIGNE VALUES('Arrivee du locataire nr. ' || TO_CHAR(dnewnoloc) || ' du logement nr. ' || TO_CHAR(dreflog) || ' enregistree.');
|
||||||
|
|
||||||
|
EXCEPTION
|
||||||
|
WHEN NO_DATA_FOUND THEN
|
||||||
|
INSERT INTO TLIGNE VALUES(dmessage);
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
|
||||||
|
---------------------------------------- Terminal output ----------------------------------------
|
||||||
|
|
||||||
|
--Numero du nouveau locataire ? (cas où tout se passe bien)
|
||||||
|
--CL0003
|
||||||
|
--Saisir la date de changement (format : jj/mm/aaaa)
|
||||||
|
--12/02/2018
|
||||||
|
--Reference logement ?
|
||||||
|
--L003
|
||||||
|
|
||||||
|
--LIGNE
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
--Depart du locataire nr. CL0004 du logement nr. L003 enregistre.
|
||||||
|
--Arrivee du locataire nr. CL0003 du logement nr. L003 enregistree.
|
||||||
|
|
||||||
|
|
||||||
|
--Numero du nouveau locataire ? (cas où il n'y a personne dans le logement donné)
|
||||||
|
--CL0002
|
||||||
|
--Saisir la date de changement (format : jj/mm/aaaa)
|
||||||
|
--12/05/2018
|
||||||
|
--Reference logement ?
|
||||||
|
--L001
|
||||||
|
|
||||||
|
--LIGNE
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
--Locataire inconnu.
|
||||||
|
|
||||||
|
|
||||||
|
--Numero du nouveau locataire ? (cas où le nouveau client entré est incorrect)
|
||||||
|
--CL9999
|
||||||
|
--Saisir la date de changement (format : jj/mm/aaaa)
|
||||||
|
--12/05/2018
|
||||||
|
--Reference logement ?
|
||||||
|
--L002
|
||||||
|
|
||||||
|
--LIGNE
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
--Client inconnu.
|
||||||
|
|
||||||
|
.
|
||||||
|
/
|
||||||
|
|
||||||
|
SELECT * FROM TLIGNE;
|
||||||
|
|
||||||
|
set verify on;
|
||||||
|
set feed on;
|
||||||
|
set echo on;
|
@ -0,0 +1,91 @@
|
|||||||
|
DROP TABLE Tlocatretour2017;
|
||||||
|
DROP TABLE Tlocation2017;
|
||||||
|
DROP TABLE Tvehicule2017;
|
||||||
|
DROP TABLE Tremplacement2017;
|
||||||
|
DROP TABLE Tcategorie2017;
|
||||||
|
DROP TABLE Tclient2017;
|
||||||
|
|
||||||
|
CREATE TABLE Tclient2017
|
||||||
|
(
|
||||||
|
noclient CHAR(4) PRIMARY KEY,
|
||||||
|
nom VARCHAR2(80) NOT NULL,
|
||||||
|
ville VARCHAR2(80) NOT NULL,
|
||||||
|
postal VARCHAR2(5) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE Tcategorie2017
|
||||||
|
(
|
||||||
|
nocat CHAR(4) PRIMARY KEY,
|
||||||
|
libelle VARCHAR2(20) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Tremplacement2017
|
||||||
|
(
|
||||||
|
nocat CHAR(4) references Tcategorie2017,
|
||||||
|
nocatequi CHAR(4) references Tcategorie2017,
|
||||||
|
primary key (nocat,nocatequi)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Tvehicule2017
|
||||||
|
(
|
||||||
|
noveh char(5) primary key,
|
||||||
|
immat char(10) not null,
|
||||||
|
modele varchar2(30) not null,
|
||||||
|
couleur varchar2(30) not null,
|
||||||
|
kilometrage number not null,
|
||||||
|
nocat CHAR(4) not null references Tcategorie2017
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE TLOCATION2017
|
||||||
|
(
|
||||||
|
noclient CHAR(4) references Tclient2017 not null,
|
||||||
|
noveh char(5) primary key references tvehicule2017,
|
||||||
|
datedeb date not null,
|
||||||
|
dateretprev date not null,
|
||||||
|
kmdeb number not null
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Tlocatretour2017
|
||||||
|
(
|
||||||
|
noclient CHAR(4) references Tclient2017 not null,
|
||||||
|
noveh char(5) not null references tvehicule2017,
|
||||||
|
datedeb date not null,
|
||||||
|
kmdeb number not null,
|
||||||
|
kmfin number not null,
|
||||||
|
dateretour date not null,
|
||||||
|
primary key (noveh,datedeb),
|
||||||
|
check(dateretour>datedeb),
|
||||||
|
check(kmfin>kmdeb)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
insert into Tclient2017 values ('C001','Dupond','Clermont Fd','63000');
|
||||||
|
insert into Tclient2017 values ('C002','Martin','Aubiere','63170');
|
||||||
|
insert into Tclient2017 values ('C003','Dutour','Clermont Fd','63000');
|
||||||
|
|
||||||
|
insert into Tcategorie2017 values ('CAT1','legere 1');
|
||||||
|
insert into Tcategorie2017 values ('CAT2','legere 2');
|
||||||
|
insert into Tcategorie2017 values ('CAT3','monospace 1');
|
||||||
|
insert into Tcategorie2017 values ('CAT4','monospace 2');
|
||||||
|
|
||||||
|
insert into Tremplacement2017 values ('CAT1','CAT2');
|
||||||
|
insert into Tremplacement2017 values ('CAT3','CAT4');
|
||||||
|
|
||||||
|
insert into Tvehicule2017 values ('VE001','aa-2000-za','clio 3','noire',26500,'CAT1');
|
||||||
|
insert into Tvehicule2017 values ('VE002','bb-3000-za','308','blanche',20000,'CAT2');
|
||||||
|
insert into Tvehicule2017 values ('VE003','cc-4000-za','clio 3','noire',5000,'CAT2');
|
||||||
|
insert into Tvehicule2017 values ('VE004','dd-5000-za','308','grise',1200,'CAT1');
|
||||||
|
insert into Tvehicule2017 values ('VE005','ff-6000-za','Picasso','noire',6600,'CAT3');
|
||||||
|
|
||||||
|
|
||||||
|
insert into Tlocation2017 values ('C001','VE001',to_date('30-01-2017','DD-MM-YYYY'),to_date('5-02-2017','DD-MM-YYYY'),26500);
|
||||||
|
insert into Tlocation2017 values ('C001','VE002',to_date('28-01-2017','DD-MM-YYYY'),to_date('7-02-2017','DD-MM-YYYY'),20000);
|
||||||
|
insert into Tlocation2017 values ('C002','VE003',to_date('29-01-2017','DD-MM-YYYY'),to_date('10-02-2017','DD-MM-YYYY'),5000);
|
||||||
|
|
||||||
|
insert into Tlocatretour2017 values ('C001','VE001',to_date('30-12-2016','DD-MM-YYYY'),24500,25000,to_date('5-01-2017','DD-MM-YYYY'));
|
||||||
|
insert into Tlocatretour2017 values ('C002','VE001',to_date('6-01-2017','DD-MM-YYYY'),25000,26500,to_date('10-01-2017','DD-MM-YYYY'));
|
||||||
|
insert into Tlocatretour2017 values ('C001','VE002',to_date('30-12-2016','DD-MM-YYYY'),18500,20000,to_date('5-01-2017','DD-MM-YYYY'));
|
||||||
|
insert into Tlocatretour2017 values ('C003','VE003',to_date('30-11-2016','DD-MM-YYYY'),1500,2500,to_date('5-12-2016','DD-MM-YYYY'));
|
||||||
|
insert into Tlocatretour2017 values ('C002','VE003',to_date('10-12-2016','DD-MM-YYYY'),2500,5000,to_date('15-12-2016','DD-MM-YYYY'));
|
Loading…
Reference in new issue