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 :

Unitialized value in concatenation


Sujet :

SGBD Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Par défaut Unitialized value in concatenation
    Bonjour,

    J'ai des erreurs que je n'arrive pas à corriger mais je pense qu'il n'y en a qu'une qui fait que ça bloque.

    Use of uninitialized value in concatenation (.) or string at ./test.pl line 205.
    Use of uninitialized value in concatenation (.) or string at ./test.pl line 206.
    Use of uninitialized value in addition (+) at ./test.pl line 236.
    Voici le code en rapport avec cette erreur :
    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
     
    my $succAttach = 0;
    my $unsuccAttach = 0;
    my $cc7a15 = 0;
    my $succPdp = 0;
    my $attPdp = 0;
    my $cc27a32 = 0;
    my $attServ = 0;
    my $unsuccServ = 0;
     
            for (my $j = 0 ; $j < scalar(@tableResEricsson) ; $j++)
            {
                    my $sAE = $dbh->prepare('SELECT SUM(valeur) as succattach FROM '.$tableResEricsson[$j].'_SGSN_'.$tableSem[$i].'_A2014 WHERE date_heure BETWEEN (\''.$tableLun[$i].'\' AND \''.$tableDim[$i].'\') AND ID_indicateur = '.$indicateursEricsson[$cpt].'') or print "erreur de prep SQL !!!!!!\n";
                    $res = $sAE->execute() or die "Could not execute SQL statement... maybe invalid ?";
                    my $succAtt; $cpt++;
                    while (my @succAtt = $sAE->fetchrow_array()) { $succAttach = $succAtt[0]; print("\n".$succAtt[0]."\n");} //ligne 205
                    print("SUCCATTACH ====> ".$succAttach); //ligne 206
     
     $succAttachEricsson += $succAttach; //ligne 236
    Si vous avez une idée de comment faire pour rémdier au problème je suis preneur... Mes requêtes sont justes (du moins en principe).

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Pour les lignes 206 et 236 c'est probablement parce que la variable $succAttach n'est pas définie.

    Et c'est sans doute dû au fait que l'élément $succAtt[0] du tableau @succAtt, sans doute parce que ta requête SQL te renvoie dans certains cas des valeurs vides.

    Les bouts de code fragmentaires que tu donnes ne permettent pas d'en dire beaucoup plus. La seule bonne manière d'éviter ce warning est de tester si les valeurs renvoyées sont définies (avec la fonction defined) et d'adapter ton code à cette situation quand ce n'est pas le cas. Un truc de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (defined $succAtt[0] ) {
        # ton code actuel
    } else {
        # code de gestion de ce cas particulier
    }

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Par défaut
    Tout d'abord merci pour ta réponse, elle m'a permit d'éclaicir le problème.

    L'erreur était dûe aux la requêtes :
    - SELECT ... WHERE (date_heure BETWEEN date1 AND date2)
    et non
    - SELECT ... WHERE date_heure BETWEEN (date1 AND date2)

    Un autre problème se pose. Chaque table correspond à un équipement et chaque équipement n'a pas été mis en prod en même temps ce qui fait que pour une semaine donnée certaines tables n'existent pas.

    Y'a t'il un moyen plus "simple" que de le faire cas par cas cad :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($semaine < 10 && $annee == 2014 && $nomEquip == equip1)
    {
           // valeurs = 0
    }
    J'espère avoir été assez clair ^^'

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ciols Voir le message
    J'espère avoir été assez clair ^^'
    Euh... pas vraiment...

    J'ai du mal à comprendre comment certaines tables n'existent pas pour une certaine semaine. Tu as des tables différentes pour chaque semaine? Ou tu veux dire qu'il n'y a pas d'enregistrement dans certaines tables pour une semaine donnée?

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Par défaut
    Alors pour faire simple. J'ai une table/équipement/semaine.

    J'ai besoin de calculer une valeur chaque semaine en prenant en compte toutes les tables de tous les équipements sur chaque semaine. Voici un exemple :

    J'ai des équipements (a,b,c) qui possèdent des tables depuis S01 jusqu'à S26 (semaine courante -1), d'autres (c,d) qui ont des tables de S10 -> S26, d'autres (e,f) encore de S01 -> 12...

    Du coup jusqu'à la semaine de S01 à S12 il me faut a, b, c, e ,f + S10 S11 S12 de c et d et ainsi de suite

  6. #6
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Il faut juste vérifier la présence d'enregistrement pour chaque semaine que tu traites, ou vérifier que la variable dans laquelle tu récupères les données est bien définie, avec le type de code que je t'ai déjà montré:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (defined $succAtt[0] ) {
        # ton code actuel
    } else {
        # code de gestion de ce cas particulier
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Use of uninitialized value in concatenation (.) or string
    Par pontarose dans le forum Langage
    Réponses: 2
    Dernier message: 28/10/2011, 13h26
  2. Use of uninitialized value in concatenation
    Par dubis dans le forum Programmation et administration système
    Réponses: 11
    Dernier message: 26/10/2011, 18h13
  3. Une erreur de "uninitialized value in concatenation" que je ne comprends pas.
    Par venturic dans le forum Programmation et administration système
    Réponses: 8
    Dernier message: 28/01/2011, 15h49
  4. Use of uninitialized value in concatenation
    Par Jasmine80 dans le forum Langage
    Réponses: 3
    Dernier message: 23/06/2008, 13h19
  5. Réponses: 8
    Dernier message: 07/09/2007, 08h42

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