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 64 65 66 67 68 69
|
#!/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 = 'ppl';
my $serveur = 'monserv'; # Il est possible de mettre une adresse IP
my $identifiant = 'bddusr'; # Identifiant
my $motdepasse = 'bddpass'; # Nous n'avons pas de mot de passe
# Connexion à la base de donnees MySQL
my $dbh = DBI->connect( "dbi:mysql:dbname=$bd;host=$serveur;", $identifiant, $motdepasse)
or die "Connexion impossible à la base de données $bd !";
# Creation des tables
print "Création de la table Regions\n";
my $sql_creation_table_regions = <<"SQL";
CREATE TABLE Regions (
id_region INT NOT NULL ,
cheflieu VARCHAR( 6 ) NOT NULL ,
tncc INT NOT NULL ,
ncc VARCHAR( 100 ) NOT NULL ,
nccenr VARCHAR( 100 ) NOT NULL ,
PRIMARY KEY ( id_region )
) COMMENT = 'Les regions 2012 en France';
SQL
$dbh->do('DROP TABLE IF EXISTS Regions;') or die "Impossible de supprimer la table Regions\n\n";
$dbh->do($sql_creation_table_regions) or die "Impossible de créer la table Regions\n\n";
# Lecture des fichiers et insertion des données
my $fichier_regions = 'reg2012.txt';
# Fichier Region
print "Insertion des données dans la table regions\n";
open my $fh_regions, '<', $fichier_regions or die "Impossible de lire le fichier $fichier_regions\n";
my $entete_fichier_region = <$fh_regions>;
# Insertion des donnees
my $requete_sql_region = <<"SQL";
INSERT INTO regions ( id_region, cheflieu, tncc, ncc, nccenr )
VALUES ( ?, ?, ?, ?, ? );
SQL
my $sth_regions = $dbh->prepare($requete_sql_region) or die $dbh->errstr;
while( my $ligne = <$fh_regions> ){
chomp $ligne;
my ( $REGION, $CHEFLIEU, $TNCC, $NCC, $NCCENR ) = split /\t/, $ligne;
$sth_regions->execute( $REGION, $CHEFLIEU, $TNCC, $NCC, $NCCENR )
or die "Echec Requête $requete_sql_region : $DBI::errstr";
}
close $fh_regions;
# Déconnexion de la base de donnees
$dbh->disconnect(); |
Partager