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

PL/SQL Oracle Discussion :

Plusieurs Exception oracle NO_DATA_FOUND dans les procédures


Sujet :

PL/SQL Oracle

  1. #1
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut Plusieurs Exception oracle NO_DATA_FOUND dans les procédures
    Bonjour a tous,
    dans un procédure oracle j'ai plusieurs bloc "select count()" se bloc génère un No_DATA_FOUND si aucun enregistrement est retourné par select :

    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
     
     
    begin
    .....
    select count(a) from t_a
    select count(b) from t_b
     
    -- ici un traitement qui calcule la valeur d'une variable v_res
     
    select count(c) from t_c where c = v_res
     
    --gestion exception pour les deux premières count
         EXCEPTION
         WHEN NO_DATA_FOUND THEN NULL;
         END;
     
     
    end
    le problème dans ce procédure est lorsque les deux premières count lève une exception de type NO_DATA_FOUND le programme va dans le bloc exception et il exécute pas le bloc traitement pour calculer v_res

    des idées ??

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Select Count(*) ne génére jamais l'exception NO_DATA_FOUND
    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
     
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 
    Connected as mni
     
    SQL> 
    SQL> declare
      2    l_cpt Pls_Integer;
      3  Begin
      4    Select count(*)
      5      Into l_cpt
      6      From dual
      7     Where 1 = 2;
      8  End;
      9  /
     
    PL/SQL procedure successfully completed
     
    SQL>

  3. #3
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    si j'ai l'exmple devant moi

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Très bien, postez-le.

  5. #5
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    attend
    j'ai exécuté ton procédure ça passe mais j'arrive pas a comprendre dans mon procédure stocké il y a que des select count et ça passe pas ?

    voici la tarace:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Erreur commençant à la ligne 1 de la commande :
    begin
    pack_proc_outils.calcul_alertes;
    end;
    Rapport d'erreur :
    ORA-01403: aucune donnée trouvée
    ORA-06512: à "SYSTEM.PACK_PROC_OUTILS", ligne 291
    ORA-06512: à ligne 2
    01403. 00000 -  "no data found"
    *Cause:    
    *Action:

  6. #6
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    voici ma procedure:

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
     
     PROCEDURE "CALCUL_ALERTES"
       IS
         CURSOR P_CUR
         IS
           SELECT  DL.NOM_DOMAINE,
    		       R.NOM_PRODUCTEUR,
    		       R.NOM_FLUX,
    		       E.NOM_CONSOMMATEUR,
    		       R.NB_FLUX_A_SURVEILLER,
    		       R.SEUIL_HORAIRE1,
    		       R.SEUIL_HORAIRE2,
    		       R.SEUIL_HORAIRE3
           FROM     T_PLANS_DE_ROUTAGES   R,
                  T_DL_APPLI_FLUX       DL,
    		      T_DYNAMIQUE_ENDPOINTS E,
    		      T_POST_TRAITEMENTS    T
           WHERE DL.NOM_APPLICATION = R.NOM_PRODUCTEUR
    	   AND DL.NOM_FLUX = R.NOM_FLUX
    	   AND E.POST_TRAITEMENT_ID = T.POST_TRAITEMENT_ID
    	   AND T.PLAN_DE_ROUTAGE_ID = R.PLAN_DE_ROUTAGE_ID;
     
         R_ALERTES P_CUR%ROWTYPE;
         DATESYSTEM DATE;
         COMPTEUR_ENTREE NUMBER;
         COMPTEUR_SORTIE NUMBER;
         SANTE_FLUX CHAR;
         SANTE_TRANSMISSION CHAR;
         NB_FLUX1 NUMBER;
         NB_FLUX2 NUMBER;
         NB_FLUX3 NUMBER;
         DUREE_SURVEILLANCE NUMBER;
     
       BEGIN
        DBMS_OUTPUT.PUT_LINE(' -------- DEBUT DE PROC STOCK CALCUL_ALERTES -------- ');
        DATESYSTEM:=SYSDATE;
       --DABORD ON VIDE LA TABLE
       EXECUTE IMMEDIATE('TRUNCATE TABLE T_ALERTES');
        OPEN P_CUR;
            LOOP
              BEGIN
                FETCH P_CUR INTO R_ALERTES;
                --SI ON EST A LA FIN EN EXIT
                EXIT WHEN P_CUR%NOTFOUND;
     
     
     
                  --CALCULE NOMBRE FLUX SELON SEUIL 1,2 et 3
                 SELECT COUNT(TT.NOM_FLUX) INTO NB_FLUX1  FROM T_TRACES TT WHERE TT.NOM_FLUX = R_ALERTES.NOM_FLUX AND TT.CONSOMATEUR = R_ALERTES.NOM_PRODUCTEUR AND TT.DATE_CREATION BETWEEN  DATESYSTEM -  (R_ALERTES.SEUIL_HORAIRE1)/24  AND  DATESYSTEM  GROUP BY NOM_FLUX;
                 SELECT COUNT(TT.NOM_FLUX) INTO NB_FLUX2  FROM T_TRACES TT WHERE TT.NOM_FLUX = R_ALERTES.NOM_FLUX AND TT.CONSOMATEUR = R_ALERTES.NOM_PRODUCTEUR AND TT.DATE_CREATION BETWEEN  DATESYSTEM -  (R_ALERTES.SEUIL_HORAIRE2)/24  AND  DATESYSTEM  GROUP BY NOM_FLUX;
                 SELECT COUNT(TT.NOM_FLUX) INTO NB_FLUX3  FROM T_TRACES TT WHERE TT.NOM_FLUX = R_ALERTES.NOM_FLUX AND TT.CONSOMATEUR = R_ALERTES.NOM_PRODUCTEUR AND TT.DATE_CREATION BETWEEN  DATESYSTEM -  (R_ALERTES.SEUIL_HORAIRE3)/24  AND  DATESYSTEM  GROUP BY NOM_FLUX;
     
                --GESTION DES EXCEPTIONS
                  EXCEPTION
                  WHEN NO_DATA_FOUND THEN NULL;
                  END;
     
                 --CALCULE SANTE_FLUX
                 IF R_ALERTES.NB_FLUX_A_SURVEILLER < 0 THEN
                 SANTE_FLUX := 'G';
                 ELSE
                    IF NB_FLUX1 > R_ALERTES.NB_FLUX_A_SURVEILLER THEN
    	              SANTE_FLUX := 'V';
    	              DUREE_SURVEILLANCE:=R_ALERTES.SEUIL_HORAIRE1;
                      ELSE
    	                    IF NB_FLUX3 <= R_ALERTES.NB_FLUX_A_SURVEILLER THEN
    	                    SANTE_FLUX := 'R';
    	                    DUREE_SURVEILLANCE:=R_ALERTES.SEUIL_HORAIRE3;
                            ELSE
    	                         IF NB_FLUX2 <= R_ALERTES.NB_FLUX_A_SURVEILLER THEN
    	                         SANTE_FLUX := 'O';
    	                         DUREE_SURVEILLANCE:=R_ALERTES.SEUIL_HORAIRE2;
    	                         ELSE
    		                         SANTE_FLUX := 'J';
    		                         DUREE_SURVEILLANCE:=R_ALERTES.SEUIL_HORAIRE1;
    		                     END IF;
    	                    END IF;
    	              END IF;
    	         END IF;
     
    			--CALCULE COMPTEUR_ENTREE
                  SELECT COUNT(T.NOM_FLUX)
    		          INTO COMPTEUR_ENTREE
    		          FROM T_TRACES T
    		         WHERE T.NOM_FLUX = R_ALERTES.NOM_FLUX
    		           AND T.PRODUCTEUR = R_ALERTES.NOM_PRODUCTEUR
    		           AND T.CONSOMATEUR IS NULL
    		           AND T.DATE_CREATION BETWEEN  DATESYSTEM -  (DUREE_SURVEILLANCE)/24  AND  DATESYSTEM
    		           GROUP BY T.NOM_FLUX, T.PRODUCTEUR;
     
                 --CALCULE COMPTEUR_SORTIE
                  SELECT COUNT(T.NOM_FLUX)
    		          INTO COMPTEUR_SORTIE
    		          FROM T_TRACES T
    		         WHERE T.NOM_FLUX = R_ALERTES.NOM_FLUX
    		           AND T.PRODUCTEUR = R_ALERTES.NOM_PRODUCTEUR
    		           AND T.STATUS = 'OK'
    		           AND T.CONSOMATEUR IS NOT NULL
    		           AND T.DATE_CREATION BETWEEN  DATESYSTEM -  (DUREE_SURVEILLANCE)/24  AND  DATESYSTEM
    		           GROUP BY T.NOM_FLUX, T.PRODUCTEUR;
     
    		           RAISE NO_DATA_FOUND;
     
                 -- CLACULE SANTE_TRANSMISSION
                 IF COMPTEUR_ENTREE = COMPTEUR_SORTIE THEN
                 SANTE_TRANSMISSION:='V';
                 ELSE
                 SANTE_TRANSMISSION:='R';
                 END IF;
     
              --INSERT DONNEES
                   insert into T_alertes
    				  (nom_domaine,
    				   nom_producteur,
    				   nom_flux,
    				   date_derniere_verif,
    				   nom_consomateur,
    				   duree_surveillance,
    				   compteur_entree,
    				   compteur_sortie,
    				   sante_flux,
    				   sante_transmission)
    				values
    				  (R_ALERTES.NOM_DOMAINE,
    				   R_ALERTES.NOM_PRODUCTEUR,
    				   R_ALERTES.NOM_FLUX,
    				   DATESYSTEM,
    				   R_ALERTES.NOM_CONSOMMATEUR,
    				   DUREE_SURVEILLANCE,
    				   COMPTEUR_ENTREE,
    				   COMPTEUR_SORTIE,
    				   SANTE_FLUX,
    				   SANTE_TRANSMISSION);
              COMMIT;
            END LOOP;
         CLOSE P_CUR;
        DBMS_OUTPUT.PUT_LINE(' -------- FIN   DE PROC STOCK CALCUL_ALERTES -------- ');
       END "CALCUL_ALERTES";

  7. #7
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    d'après ma petite expérience dans les procédures stocké oracle je suis sur que NO_DATA_FOUND est levé aussi lors d'une select count() ... le scousci est comment géré cette exception

  8. #8
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    C'est "normal" vous avez une instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                   RAISE NO_DATA_FOUND;
    apres le select

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                 --CALCULE COMPTEUR_SORTIE
    [EDIT]
    PS. C'est erroné d'utiliser du sql dynamique pour vider la table T_ALERTES
    [/EDIT]

  9. #9
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    - oui juste une fausse manip de ma part que j'ai oublier :

    RAISE NO_DATA_FOUND;

    mais toujours le no_data_found persiste

    - comment en vas procéder a la suppression de la table ta une autre solution ??

  10. #10
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Jacobian Voir le message
    - oui juste une fausse manip de ma part que j'ai oublier :

    RAISE NO_DATA_FOUND;

    mais toujours le no_data_found persiste
    ...
    Peut être un autre oubli

    Citation Envoyé par Jacobian;5770021...
    - comment en vas procéder a la suppression de la table ta une autre solution ??
    Utilisez une table temporaire.

    PS. J’ai dit des conneries, bien sûr qu’il faut un sql dynamique pour le truncate table.

  11. #11
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    alors jusqu'à présent j'ai pas de solution je rectifié:

    - comment géré les exceptions selon ma première poste ?

  12. #12
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Je n'ai pas vu d'exemple qui démontre vous soucis, non plus.
    Mettez les select dans des blocks Pl/SQL séparés et gérer les exceptions comme vous avez envie.
    Revenez avec un exemple concret ça va aller plus vite.

  13. #13
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    ok , j'ai essayé ça mais la procédure ça compile pas:
    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
     
    begin
    .....
    --block 1
        begin
         SELECT count(a) FROM t_a
         SELECT count(b) FROM t_b
      --gestion exception 
         EXCEPTION
         WHEN NO_DATA_FOUND THEN NULL;
         END;
       end; 
    -- ici un traitement qui calcule la valeur d'une variable v_res
    --block 2
     begin
     SELECT count(c) FROM t_c WHERE c = v_res
     --gestion exception
         EXCEPTION
         WHEN NO_DATA_FOUND THEN NULL;
         END;
     end;
     
     
     
    end

  14. #14
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    dsl ça compile merci

  15. #15
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Vous devez comprendre que mettre la gestion de l'exception NO_DATA_FOUND après un Select Count(*) ne sert à rien.

  16. #16
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    hhhhhhh oui il se peut que ça soit vrai théoriquement mais en pratique ça marche pas bon courage

  17. #17
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Jacobian Voir le message
    hhhhhhh oui il se peut que ça soit vrai théoriquement mais en pratique ça marche pas bon courage

  18. #18
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Citation Envoyé par Jacobian Voir le message
    hhhhhhh oui il se peut que ça soit vrai théoriquement mais en pratique ça marche pas bon courage
    Ca, ca va finir dans le bétisier de developpez.com !
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  19. #19
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    alors pour ne pas alourdir cette discussion va jeter un coup d'euil ici:

    http://forums.oracle.com/forums/thre...sageID=3624185

    Noter Bien: Select count() génere une exception de type NO_DATA_FOUND

  20. #20
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Jacobian Voir le message
    ...
    Noter Bien: Select count() génere une exception de type NO_DATA_FOUND

    En suivant votre lien
    Toon Koppelaars dit
    You shouldn't get a NO_DATA_FOUND in the way you show
    SomeoneElse dit
    This will never throw a NO_DATA_FOUND exception. If no rows match the WHERE clause, the result will be 0.
    Centinul dit
    I don't understand why you are getting a NO_DATA_FOUND exception with the COUNT(*) function because if there are no rows it should still return 0 as the result.
    Vous comprenez l'anglais ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Exception oracle dans les procédures
    Par msahmi dans le forum SQL
    Réponses: 7
    Dernier message: 24/04/2008, 16h30
  2. Réponses: 3
    Dernier message: 03/08/2007, 21h11
  3. ntext interdits dans les procédures et triggers.
    Par gregb34 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/06/2007, 17h58
  4. Gestion d'erreur dans les procédure
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/01/2006, 12h02
  5. Calcul du temps passé dans les procédures ...
    Par Jloox dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/10/2005, 14h31

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