Bonjour,
jai 2 tables :
- Personnes : où il y a mes données.
- Tampon : vide
Personnes (Nom,Prenom,Adresse,Groupe)
Tampon(TNom,TPrenom,TAdresse,TGroupe)
le champs Personnes.Groupe est un VARCHAR2, il peut avoir comme valeur (A; AB;ABC; ABCD etc...)
Le but est de copier le contenu de personnes dans Tampon et quand Groupe à n lettres, dupliquer la ligne n fois dans Tampon.
Exemples :
on a dans personnes
Martin toto 15 rue du four ABC
Dupond titi 28 av des fleurs C
on veut dans Tampon
Martin toto 15 rue du four A
Martin toto 15 rue du four B
Martin toto 15 rue du four C
Dupond titi 28 av des fleurs C
jai fais la procedure PL/SQL suivante
Mes Problèmes :
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 CREATE OR REPLACE PROCEDURE Dupliquer_lignes IS CURSOR CCur IS SELECT a.Nom,a.Prenom,a.Adresse,a.Groupe FROM Personnes a; ligne Personnes%ROWTYPE; n Personnes.Nom%TYPE; p Personnes.Prenom%TYPE; adr Personnes.Adresse%TYPE; g Personnes.Groupe%TYPE; i NUMBER; BEGIN i:=1; OPEN CCur; LOOP; FETCH CCur INTO n,p,adr,g; EXIT WHEN CCur%NOTFOUND; IF substr(trim(a.Groupe))>1 THEN FOR i IN 1 .. substr(trim(a.Groupe)) LOOP; INSERT INTO Tampon VALUES(n,p,adr,g); i:=i+1; END LOOP; ELSE INSERT INTO Tampon VALUES(n,p,adr,g); END IF; END LOOP; CLOSE CCur; END; /
1 - Il y a une erreur de syntaxe que je ne trouve pas
2 - Je ne sais pas comment ecrire "quand on duplique, on prend la 1er Groupe, puis le 2nd etc...
3 - Avez-vous une solution plus simple.
Merci
Partager