Bonjour,
j'aurais besoin d'aide sur un script perl je suis débutant et je ne comprends pas trop la fonction "while"
ici dans mon script j'utilise donc ce "tant que" le fichier est OK
la requete s'execute avec la valeur par defaut $_ dans mon WHERE
se qui devrait m'afficher a chaque ligne le resultat de $_ + la sortie de la requete
mais je n'obtient que celui de la derniere ligne ?
voila le script et le résultat qu'il affiche :
Le résultat:
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 #!D:\perl\bin\perl.exe #Module necessaire a la connexion aux base et l'ouverture de fichier excel use DBI; #login mot de passe d'acces base $dbname="a"; $dbuser="b"; $dbpass="c"; #Connexion a la base my $dbh = DBI->connect("dbi:Oracle:$dbname", $dbuser, $dbpass, {AutoCommit => 0}) || die "Unale to connect to $dbname: $DBI::errstr\n"; open(FILEIN,'<c:\\zapzonein'); $i = 0; while(<FILEIN>) { $i ++; print "$_"; $query=" ma requete , en utilisant $_ dans le WHERE "; $sth = $dbh->prepare($query); $sth->execute(); @ligne = $sth->fetchrow_array; print "@ligne\n"; open(FILEOUT,'>c:\\zapzoneout'); print FILEOUT "@ligne\n"; } $sth->finish(); $dbh->disconnect || warn $dbh->errstr; close FILEIN || die "Problème à la fermeture : $!"; close FILEOUT || die "Problème à la fermeture : $!";
654
167
456
167 N B V
Alors que je voudrais obtenir :
654
167 N B V
456
167 N B V
Partager