IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SGBD Perl Discussion :

requetes Postgre et stockage tableau


Sujet :

SGBD Perl

  1. #1
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut requetes Postgre et stockage tableau
    Bonjour,
    Débutant dans le langage Perl, je dois combiner plusieurs choses dans Perl qui me compliquent la tâche :
    J'ai un fichier .txt contenant : Site;AdresseIP que je dois lire et stocker afin d'utiliser ces deux champs en ForEach
    Je dois donc me connecter sur les bases PostGreSQL de chaque Site grâce à leur adresse IP, effectuer une requête plutôt simple sur une table (un select count(*) d'une table) puis stocker le nombre résultant + le Site correspondant à l'adresse IP où j'ai requêté. J'aimerai dans l'idéal stocker le résultat de chaque requête à la suite dans un fichier (.csv).
    Pour le moment cela ressemble à ça mais je ne suis pas sur que cela fonctionne, et je bloque pour la suite :
    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
    open(my $fd, '<', 'test.txt');
    my @data = <$fd>;
    close($fd);
    while(<>) {
      chomp;
      push @data, [split m/;/, $_, -1] if m/;/;
    }
    foreach my $i (0 .. $#data)
    {
    #Les paramètres
    my $base = 'base1';
    my $host = $data[$i][1];
    my $login = 'login';
    my $mdp = 'mdp';
    my $port = '5432';
     
    AfficherMessage(\*$flog,"Initialisation de la connexion a PostGreSQL");
    my $dbh = DBI-> connect("dbi:Pg:dbname=$base;host=$host;port=$port;", $login, $mdp) or die "Connexion impossible a PostGreql !";
    Des suggestions ou des pistes svp?

    Merci !

  2. #2
    Membre habitué
    Homme Profil pro
    Master Data Manager
    Inscrit en
    Février 2017
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Master Data Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2017
    Messages : 113
    Points : 148
    Points
    148
    Par défaut
    Bonjour.

    Le sujet est vieux, mais ce n'est pas une raison pour ne pas y répondre. si cela peut inspirer quelqu'un ... un jour ... peut être

    Code perl : 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
    use Modern::Perl;
    use IO::All;
    use DBI;
    use DBD::PG;
     
    # lecture du fichier Site;AdresseIP
    my @lst_ips = io->file('site_ip.txt')->chomp->slurp;
     
    # requetes plus stockage
    for my $i ( @lst_ips ) {
     
        # parse la ligne
        my ( $site, $ip ) = split /;/, $i;
     
        # recup le nombre de ligne
        my $count = get_count( $ip );
     
        # stock a la suite du fichier csv
        io->file( 'stockage_result.csv' )->append($site.';'.$count);
    }
     
    # fonction qui retourne le nombre d'enregistrement 
    # de 'la_database.public.ma_table' du serveur postgresql
    # dont l'IP est passé en argument.
    sub get_count {
        my $ip = shift;
     
        # init la connexion au serveur
        my $dbh_pg = DBI->connect(
            "dbi:Pg:dbname=la_database;host=$ip",
            'user',
            'passwd'
        );
     
        # definition de la requete
        my $sql = 'select count(*) from public.ma_table';
     
        # prepare et jou la requete
        my $ary = $dbh_pg->selectcol_arrayref( $sql );
     
        # return
        $ary->[0];
    }

Discussions similaires

  1. [SQL] Recupération Requete SQL dans un tableau dynamique PHP
    Par victor.jbju dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 13/09/2006, 16h48
  2. Requete sur table avec Tableau
    Par Sichagadel dans le forum Langage SQL
    Réponses: 3
    Dernier message: 08/11/2005, 14h05
  3. [MySQL] problème avec 2 requetes pour 1 même tableau
    Par guy2004 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/11/2005, 12h50
  4. [MySQL] Comment afficher le resultat d 1 requete à 1DB ds 1 tableau
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/10/2005, 12h03
  5. résultat d'une requete SQL dans un tableau en JSP
    Par Paradoxys dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 06/04/2005, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo