Bonjour,
Je voudrais savoir s'il y a un moyen simple de simuler une liste (tableau, array) comme argument d'une fonction ou d'une procédure, dans l'idée de ne faire qu'une seule fonction/procédure pour répondre à mes besoins, et côté serveur SQL pour soulager l'applicatif...
Un petit exemple que je reprends d'un récent sujet que j'ai lançé :
Soient 3 tables :
element_name (id int, name varchar)
single (id int, name varchar)
assemblage (id int, element_name_id int, single_id int) avec element_name_id et single_id des clés étrangères sur les id respectivement des tables element_name et single.
Exemple d'element_name : skateboard, voiture, moto, velo
Exemple de single : guidon, volant, roue, frein, porte
Je vais avoir comme "assemblage"s :
skateboard/roue
velo/roue
velo/frein
velo/guidon
moto/roue
moto/frein
moto/guidon
voiture/roue
voiture/frein
voiture/volant
voiture/porte
Je voudrais ajouter de nouveaux assemblages avec des elements deja existant.
J'aimerais une procedure que j'appelerais de cette manière :
le premier argument serait l'element a creer et les autres sont les single à inserer dans assemblage avec ce nouvel element.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 call create_assemblage('bus','roue','frein','volant','porte') call create_assemblage('roller','roue','frein')
Du style :
et ceci dans une boucle pour le faire autant de fois que d'éléments en argument...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 # inserer le nouvel element insert into element_name (name) values ('bus') # recuperer son id select id from element_name where name='bus' # premier couple de l'assemblage select id2 from single where name='roue' ; insert into assemblage (element_name_id, single_id) values (id, id2) # second couple de l'assemblage select id2 from single where name='frein' ; insert into assemblage (element_name_id, single_id) values (id, id2) etc...
ou bien, imaginer de concatener les elements dans le deuxième argument mais il faut trouver un moyen d'itérer sur ces arguments dans la fonction/procedure :
Merci pour vos avis !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 call create_assemblage('bus','roue,frein,volant,porte') call create_assemblage('roller','roue,frein')
Partager