Bonjour,
J'ai un petit problème avec la requête suivante. J'interroge plusieurs tables d'une base de données via un script Perl. J'aimerais appeler ces tables une à une dans une boucle.
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 my $Table1="SHV"; my $Table2="TEM"; my $Table3="OXA"; my $Table4="CTX_M"; my $Table5="CMY"; my $Table6="IMP"; my $Table7="VIM"; my $Table8="KPC"; my $Table9="GES"; my $Table10="PER"; my $Table11="VEB"; my $Table12="SME"; my $Table13="OXY"; my $Table14="LEN"; my $Table15="OKP"; for (my $a=1; $a<16; $a++) { my $sql = "SELECT * FROM \$Table$a"; print $sql."\n"; }
Résultats
SELECT * FROM $Table1
SELECT * FROM $Table2
SELECT * FROM $Table3
SELECT * FROM $Table4
SELECT * FROM $Table5
SELECT * FROM $Table6
SELECT * FROM $Table7
SELECT * FROM $Table8
SELECT * FROM $Table9
SELECT * FROM $Table10
SELECT * FROM $Table11
SELECT * FROM $Table12
SELECT * FROM $Table13
SELECT * FROM $Table14
SELECT * FROM $Table15
Pourriez-vous s'il vous plait me dire comment faire afin qu'il affiche mes noms de tables dans les requêtes.
Je peux contourner ce problème en entrant mes noms de tables dans une array et faire une boucle en appelant un à un les composantes de mon array.
Y a-t'il dans ces deux approches, l'une meilleure que l'autre?
De l'autre manière cela fonctionne très bien:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 my @Table = ("SHV","TEM","OXA","CTX_M","CMY","IMP","VIM","KPC","GES","PER","VEB","SME","OXY","LEN","OKP"); for (my $a=0; $a<15; $a++) { my $sql = "SELECT * FROM $Table[$a]"; print $sql."\n"; }
SELECT * FROM SHV
SELECT * FROM TEM
SELECT * FROM OXA
SELECT * FROM CTX_M
SELECT * FROM CMY
SELECT * FROM IMP
SELECT * FROM VIM
SELECT * FROM KPC
SELECT * FROM GES
SELECT * FROM PER
SELECT * FROM VEB
SELECT * FROM SME
SELECT * FROM OXY
SELECT * FROM LEN
SELECT * FROM OKP
Merci beaucoup,
Jasmine
Partager