Bonjour,


Admettons que j'ai la table suivante :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
---------------------------------
|         TABLE VEHICULE        |
---------------------------------
| ID | CATEGORIE | MODELE | KM  |
---------------------------------
|  1 | Voiture   | Twingo | 100 |
|  2 | Voiture   | Clio   |  50 |
|  3 | Moto      | Burgman|  14 |
|  4 | Moto      | Tmax   |   5 |
---------------------------------


j'ai 2 autres tables :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
---------------------
|   TABLE VOITURE   |
---------------------
| ID | MODELE | KM  |
---------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
---------------------
|     TABLE MOTO    |
---------------------
| ID | MODELE | KM  |
---------------------
avec les sequences associées (SEQ_VOITURE, SEQ_MOTO).


et enfin 2 tables qui font la liaison entre la VEHICULE et VOITURE et MOTO

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
----------------------------
|     TABLE VEH_VOITURE    |
----------------------------
| ID_VEHICULE | ID_VOITURE |
----------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
--------------------------
|     TABLE VEH_MOTO     |
--------------------------
| ID_VEHICULE | ID_MOTO  |
--------------------------


Je voudrais faire une procèdure stockée (ou une fonction ou quelque chose) qui :
selectionne tous les éléments étant de la CATEGORIE "Voiture" de la table VEHICULE
les insère dans la table VOITURE avec la sequence correspondante
met à jour la table VEH_VOITURE avec l'id de la table VEHICULE et l'id de la table VOITURE (généré par la sequence)

et bien sûr la même chose pour moto (mais si ça marche pour voiture, y aura plus qu'à changer le nom)


les scripts de créations :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
--table VEHICULE
create table VEHICULE  (
	ID 		INTEGER 	not null,
	CATEGORIE	VARCHAR2(20)	not null,
	MODELE		VARCHAR2(20)	not null,
	KM		NUMBER		not null,
    primary key (ID)
);
 
--données de la table VEHICULE
insert into VEHICULE (ID,CATEGORIE, MODELE,KM) 
values (1, 'Voiture', 'Twingo', 100);
insert into VEHICULE (ID,CATEGORIE, MODELE,KM) 
values (2, 'Voiture', 'Clio', 50);
insert into VEHICULE (ID,CATEGORIE, MODELE,KM) 
values (3, 'Moto', 'Burgman', 14);
insert into VEHICULE (ID,CATEGORIE, MODELE,KM) 
values (4, 'Moto', 'Tmax', 5);
 
--table VOITURE
create table VOITURE  (
	ID 		INTEGER 	not null,
	MODELE		VARCHAR2(20)	not null,
	KM		NUMBER		not null,
    primary key (ID)
);
 
--table MOTO
create table MOTO  (
	ID 		INTEGER 	not null,
	MODELE		VARCHAR2(20)	not null,
	KM		NUMBER		not null,
    primary key (ID)
);
--Sequence MOTO
create sequence SEQ_MOTO
increment by 1
start with 000001;
 
--Sequence VOITURE
create sequence SEQ_VOITURE
increment by 1
start with 000001;
 
 
create table VEH_VOITURE  (
	ID_VEHICULE	INTEGER 	not null,
	ID_VOITURE	INTEGER 	not null,
    primary key (ID_VEHICULE,ID_VOITURE)
);
 
create table VEH_MOTO  (
	ID_VEHICULE	INTEGER 	not null,
	ID_MOTO		INTEGER 	not null,
    primary key (ID_VEHICULE,ID_MOTO)
);

Pouvez-vous m'aider ?

Merci

PoichOU

PS : j'espère que la lecture du post ne vous a pas saouler mais j'ai essayer d'être précis.