Bonjour à tous!
J'ai beau chercher, tester, m'acharner, ça coince. Peut-être un détail, mais je coince...
Mon problème, simplement de récupérer la valeur d'une variable d'un bloc BEGIN vers le bloc supérieur. Bon, un exemple sera plus parlant :
Vraiment résumé sur l'essentiel; le code marche (déjà en place depuis longtemps). Là le but c'est sur lecture d'une ligne si cas1 je mets un texte dans ma variale stMsg.
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 PROCEDURE import(...) IS ... stMsg VARCHAR2(250); BEGIN IF action='ouverture' THEN ... ELSEIF action='lecture ligne' THEN BEGIN ... (traitements) if (cas1) then stMsg=stMsg || 'cas 1 présent'; ... END; ELSEIF action='fermeture' ... UTL_FILE.PUTF( Rapport , stMsg); ... END;
A la fin du traitement, on arrive dans le esleif fermeture, je mets mes textes concaténés dans un fichier...
Sauf que ma variable est systématiquement vide!
Si je l'imprime dans min "if (cas1)", ça marche (enfin, il m'écrit le texte de la ligne en cours, pas une concaténation de toutes les lignes comme j'aurais pensé...ce qui veut bien dire qu'à la sortie de la boucle, ma variable ne garde pas sa valeur).
Donc le problème est simple : il ne reste plus qu'à ne pas perdre le contenu de cette variable une fois sorti du mon BEGIN imbriqué.
Simple... mais je coince depuis plusieurs jour!
Merci pour votre aide!
PS : il s'agit d'Oracle 91, si jamais ça joue...
Partager