Bonjour,
J'essaye d'importer des données dans une base de données via Perl en utilisant le module DBI.
J'ai repris l'exemple de Djibril dans ce tuto.

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 
#!/usr/bin/perl -w
 
use warnings; 
use strict; 
use diagnostics;
use DBI;                    # Charger le module DBI 
use vars qw/ $VERSION /;    # Version du script 
$VERSION = '1.0'; 
 
# Paramètres de connexion à la base de données 
my $bd          = 'mybd; 
my $serveur     = 'serv1';    # Il est possible de mettre une adresse IP 
my $identifiant = 'bdd1';         # Identifiant 
my $motdepasse  = 'bdd1pass';        # Nous n'avons pas de mot de passe 
 
# Connexion à la base de données MySQL 
my $dbh = DBI->connect("dbi:mysql:dbname=$bd;host=$serveur;", $identifiant, $motdepasse ) 
or die "Connexion impossible a la base de donnees $bd !"; 
 
# Création des tables 
print "Creation de la table UltraSonTHERM\n"; 
 
my $sql_creation_table_regions = <<"SQL";
CREATE TABLE UltraSonTHERM( 
	id_ultrason INT UNSIGNED NOT NULL AUTO_INCREMENT,
	date DATETIME NOT NULL,
	ultrasoundID TINYINT,
	value SMALLINT UNSIGNED,
	PRIMARY KEY (id_ultrason)
)COMMENT ='Capteurs ultra son pour maxity thermique';
SQL
 
$dbh->do('DROP TABLE IF EXISTS UltraSonTHERM;') or die "Impossible de supprimer la table UltraSonTHERM\n\n";
$dbh->do($sql_creation_table_regions) or die "Impossible de créer la table UltraSonTHERM\n\n";
 
# Lecture des fichiers et insertion des données 
my $fichier_ultrason      = 'bigfileUltrason_THERM.txt'; 
#print "$fichier_ultrason \n";
 
# Fichier UltraSonTHERM 
print "Insertion des donnees dans la table UltraSonTHERM\n"; 
open my $fh_ultrason,'<', $fichier_ultrason or die "Impossible de lire le fichier $fichier_ultrason\n"; 
#open(my $fh_ultrason, "<bigfileUltrason_THERM.txt") or die "Impossible de lire le fichier $fichier_ultrason\n"; 
my $entete_fichier_region = <$fh_ultrason>; 
 
# Insertion des données 
my $requete_sql_region = <<"SQL"; 
  INSERT INTO UltraSonTHERM (date,ultrasoundID,value) VALUES ( ?, ?, ?);
SQL
 
 
my $sth_regions = $dbh->prepare($requete_sql_region) or die $dbh->errstr; 
while ( my $ligne = <$fh_ultrason> ) { 
  chomp $ligne; 
  my ($Date,$UltrasoundID,$Value) = split /\t/, $ligne; 
  $sth_regions->execute($Date,$UltrasoundID,$Value) 
    or die "Echec Requête $requete_sql_region : $DBI::errstr"; 
} 
close $fh_ultrason; 
 
# Déconnexion de la base de données 
$dbh->disconnect();
Quand j’exécute le script, j'arrive à me connecter et à créer la table sur la base de données MySQL et j'obtiens à la fin cette erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Insertion des donnees dans la table UltraSonTHERM
Uncaught exception from user code:
        Impossible de lire le fichier bigfileUltrason_THERM.txt
J'ai besoin un peu d'aide pour corriger ce bug.
Merci