Bonjour,

Je souhaite remplir un champ dans une table en fonction du contenu d'un autre champ de cette même table, et le remplir tout en ajoutant des caractères.

Par exemple, j'ai une table NOURRITURE dans laquelle j'ai un champs FRUIT. Je peux avoir comme valeur FRAISE, POIRE, POMME, ABRICOT ou tout ce que vous voulez.
Et j'ai un champ CODEFRUIT (le nom est mal choisi, mais j'ai pas mieux là!) dans lequel je veux ajouter "1234" devant le contenu du champ FRUIT. Tout le temps le même code 1234. C'est à dire obtenir "1234FRAISE".

Déjà, pour le coup, je ne sais pas trop comment m'y prendre en PL/SQL...
Mais en plus, ça se corse. Dans mon champ FRUIT, je peux avoir plusieurs fruits, comme ceci : "FRAISE,POMME,POIRE,ABRICOT".
Donc, dans mon champs CODEFRUIT, je voudrais 1234FRAISE,1234POMME,1234POIRE,1234ABRICOT.

Autant je le fais en flex sans trop de difficultés, autant en PL/SQL... Et j'ai besoin de faire le script en PL/SQL.

D'ailleurs, mon code en flex (si jamais ça peut aider)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
if varFRUIT != ""
{
    tabFruit = varFRUIT.split(',')
    for each (item in tabFruit)
    {
        item = "1234" + item;
        varCODEFRUIT = varCODEFRUIT+item+',';
    }
}
Je ne connais pas très bien ce langage, seulement les bases.
J'ai commencé à faire ça (mais je vous préviens, c'est surement dégueulasse et à priori bourré de fautes!)
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
 
DECLARE
  TYPE tabFruit is varray (1000) of varchar2(15);
 
  cursor champFruit is
  select * from NOURRITURE
  where FRUIT IS NOT NULL;
 
  cursor item is
  select * from tabFruit ;
 
Begin
  For champFruit in NOURRITURE Loop //boucler sur la table
    TAB tabFruit := tabFruit (substr(FRUIT, INSTR(FRUIT,',')));
 
    For item in tabFruit Loop //boucler sur le champ
      item='1234'+item;
      CODEFRUIT = CODEFRUIT +item+',';
    End loop;    
 
  End loop;
 
End;
Au secours!!!