Voilà, j'ai circulé sur le forum et ai fait la connaissance de EXECUTE STATEMENT.
Actuellement, je fais une procédure qui marche nickel sauf pour une ligne (bien sûr la plus importante).
Je n'arrive pas à faire l'execute statement, peut-être que je m'en sers mal, enfin voilà, si vous pouviez m'aider svp
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 set term ^; create procedure PurgerBase as declare variable lesSimulations varchar(50); declare variable lesDomaines varchar(50); declare variable lePrefixe varchar(20); declare variable laTable varchar(40); declare variable laRequete varchar(256); BEGIN lesSimulations='select SimKey from Simulation where SimDeleted=0'; lesDomaines='select DomRowId from HSYS_Domaines'; for select TsvNomTable,TsvPrefixeChamp from tsversion into laTable,lePrefixe do begin laRequete='update '||laTable||' set '||:lePrefixe||'Deleted=1 '; laRequete=:laRequete||'where ('||:lePrefixe||'Simulation>0 and '; laRequete=:laRequete||:lePrefixe||'Simulation not in ('||:lesSimulations||')) or '; laRequete=:laRequete||:lePrefixe||'Domaine not in ('||:lesDomaines||')'; execute statement :laRequete; suspend; end END ^ set term; ^![]()
Partager