Question bonjour,
j'utilise des procédures sql dans une base ingres pour des traitements assez complexes.
je souhaiterais lors de ces traitements pouvoir
- soit créer des espèces de tableaux pour stocker des données à traiter ultérieurement
- soit arriver à écrire un code dans la procédure qui pourrait être exécuté plusieurs fois (sans créer une nouvelle procédure)
cela est-il possible ?
je n'arrive pas à trouver de solution.
merci
Answer Bonjour,
Tout d'abord désolé d'avoir un peu trainé pour la réponse, j'étais à l'étranger et j'ai eu quelques soucis de connexion.
Des espèces de tableaux à traiter ultérieurement ce sont ... des tables non ? Dans ce cas vous pouvez toujours faire un INSERT ... SELECT dans votre procédure stockée.
Pour éviter de répéter le même code tout au long de vos procédures vous pouvez l'isoler dans d'autres procédures, qui peuvent s'appeler entre elles. Entre ces procédures vous pouvez passer des paramètres, y compris des GLOBAL TEMPORARY TABLE. Par exemple, supposons que toutes vos procédures traitent la même source d'information, mais d'une manière différente.
Vous allez créer une DB Proc nommée par exemple "remplir_liste" à laquelle vous allez passer comme paramètre un GLOBAL TEMPORARY TABLE (table mémoire - voir ordre SQL DECLARE GLOBAL TEMPORARY TABLE - qui sera créée par le traitement appelant - pas dans une DB Proc en revanche), laquelle table mémoire sera remplie, toujours de la même façon, par votre procédure "remplir_liste".
Ensuite la DB proc appelante pourra toujours boucler sur un SELECT pour traiter chaque occurrence.
J'espère avoir répondu à vos questions. N'hésitez pas à revenir vers moi en cas de soucis, ou à me contacter directement par email (voir sur mon site).