Publicité
+ Répondre à la discussion
Page 1 sur 3 123 DernièreDernière
Affichage des résultats 1 à 20 sur 51
  1. #1
    Membre Expert
    Homme Profil pro AbdelHakim Kellouche
    Inscrit en
    mai 2008
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Nom : Homme AbdelHakim Kellouche
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 066
    Points : 2 013
    Points
    2 013

    Par défaut "N" procédures stockées exécutées dans un seul code

    Salut !

    j'ai réalisé 5 procédures stockées que je veux exécuter en un seul morceau sous forme de "block firebird" ou de "PS" mais je ne sais pas comment m'y prendre .

    A toute fin utile, voici en pièce jointe les 5 PS dans un fichier texte. Je suis ouvert à toute proposition, idée, article ou autre pouvant m'aider dans ce sens.

    Merci par avance.
    Fichiers attachés Fichiers attachés
    Bon courage ou Bonne Chance (selon le contexte)

  2. #2
    Membre Expert
    Homme Profil pro Olivier Dehorter
    Ingenieur de recherche - Ecologue
    Inscrit en
    juin 2003
    Messages
    967
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Dehorter
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : juin 2003
    Messages : 967
    Points : 1 315
    Points
    1 315

    Par défaut

    il suffit d'executer les PS dans une autre PS:
    Code :
    1
    2
    3
    4
     
    SELECT Ma_PS.*
    FROM Ma_PA(param1, ..)
    INTO :xxxx
    ou
    Code :
    EXECUTE PROCEDURE Ma_PS(param1, ...)

  3. #3
    Membre Expert
    Homme Profil pro AbdelHakim Kellouche
    Inscrit en
    mai 2008
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Nom : Homme AbdelHakim Kellouche
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 066
    Points : 2 013
    Points
    2 013

    Par défaut

    Pour une PS ça marche mais je voudrais faire quelque chose comme :
    Code :
    1
    2
    3
    EXECUTE PROCEDURE Ma_PS1(param1, ...)
    EXECUTE PROCEDURE Ma_PS2(param1, ...)
    EXECUTE PROCEDURE Ma_PSn(param1, ...)
    mais ça marche pas de cette façon
    Bon courage ou Bonne Chance (selon le contexte)

  4. #4
    Membre Expert
    Homme Profil pro Olivier Dehorter
    Ingenieur de recherche - Ecologue
    Inscrit en
    juin 2003
    Messages
    967
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Dehorter
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : juin 2003
    Messages : 967
    Points : 1 315
    Points
    1 315

    Par défaut

    Si ça marche; je le fais.

    Attention de EXECUTE PROCEDURE fonctionne pour les PS qui ne renvoient pas de valeur (pas de RETURN) ET elle ne renvoie rien, sinon utilisez le classique SELECT

  5. #5
    Membre Expert
    Homme Profil pro AbdelHakim Kellouche
    Inscrit en
    mai 2008
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Nom : Homme AbdelHakim Kellouche
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 066
    Points : 2 013
    Points
    2 013

    Par défaut

    je crois que vous m'avez pas compris !
    c'est pas une question EXECUTE PROCEDURE ou de SELECT mais d'exécutions successives de plusieurs PS dans le même source.

    Je voudrais faire ça :
    Code :
    1
    2
    SELECT * FROM "[10]PS_INDICE_BOUE"('30.09.2012','30.09.2012','c',3);
    SELECT * FROM "[10]PS_RATIO_DCO_DBO5"('30.09.2012','30.09.2012');
    mais ça passe pas !!! comment contourner ce problème ?
    Bon courage ou Bonne Chance (selon le contexte)

  6. #6
    Membre Expert
    Homme Profil pro Olivier Dehorter
    Ingenieur de recherche - Ecologue
    Inscrit en
    juin 2003
    Messages
    967
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Dehorter
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : juin 2003
    Messages : 967
    Points : 1 315
    Points
    1 315

    Par défaut

    Si, Si

    Je le fais dans mes PS !

    Là les 2 Select ne marchent pas, il manque le INTO ....

    la même source est bien une PS ?


    pourquoi ne pas mettre le code de cette "même source" ?

  7. #7
    Membre Expert
    Homme Profil pro AbdelHakim Kellouche
    Inscrit en
    mai 2008
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Nom : Homme AbdelHakim Kellouche
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 066
    Points : 2 013
    Points
    2 013

    Par défaut

    Salut et merci
    à mon avis je ne suis pas trop explicite ce qui m'amène à tourner en rond

    récapitulatif : j'ai plusieurs PS qui fonctionnent très très bien à l'exécution mais là je voudrais les exécuter une par une dans un même et seul code sauf que j'arrive pas à le faire.

    si quelqu'un a déjà fait ça qu'il m’aiguille et merci par avance.
    Bon courage ou Bonne Chance (selon le contexte)

  8. #8
    Membre Expert
    Homme Profil pro Olivier Dehorter
    Ingenieur de recherche - Ecologue
    Inscrit en
    juin 2003
    Messages
    967
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Dehorter
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : juin 2003
    Messages : 967
    Points : 1 315
    Points
    1 315

    Par défaut

    Citation Envoyé par Just-Soft Voir le message
    Salut et merci
    à mon avis je ne suis pas trop explicite ce qui m'amène à tourner en rond

    récapitulatif : j'ai plusieurs PS qui fonctionnent très très bien à l'exécution mais là je voudrais les exécuter une par une dans un même et seul code sauf que j'arrive pas à le faire.

    si quelqu'un a déjà fait ça qu'il m’aiguille et merci par avance.
    J'ai déjà répondu, CA MARCHE.
    Pourquoi ne pas mettre votre code de manière plus explicite; cela faciliterait les choses

  9. #9
    Rédacteur/Modérateur
    Avatar de SergioMaster
    Homme Profil pro Serge Girard
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    5 085
    Détails du profil
    Informations personnelles :
    Nom : Homme Serge Girard
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 5 085
    Points : 9 417
    Points
    9 417

    Par défaut

    je confirme ce que dit Olivier cela fonctionne à partir du moment où il y a des INTO .

    dans votre fichier joint (a noter que je trouve ça extrêmement désagréable d'avoir a télécharger un fichier pour un bout de code) je ne voit aucunes procédures mais des SELECT , sans INTO et sans SUSPEND j'ai donc du mal a comprendre le problème exact

    ma déduction est que je vois un dialogue de sourds a moins que je sois aveugle ?
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  10. #10
    Membre Expert
    Homme Profil pro AbdelHakim Kellouche
    Inscrit en
    mai 2008
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Nom : Homme AbdelHakim Kellouche
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 066
    Points : 2 013
    Points
    2 013

    Par défaut

    Re,

    je sais que je suis déplaisant cette matinée mais
    Serge ! t'es devenu méchant et impatient contrairement à tes bonnes habitudes

    ok, voici en pièce jointe un fichier texte dont j'ai mis 2 procédures parmi un tas d'autres qui traite du même sujet (exploitation d'une station d'épuration à boue activée). Mon but est de pouvoir lancer toutes les procédures dans un seul et même code source pour avoir comme résultat un fichier texte avec le résultat de chacune des PS et les erreurs d'exécution au cas où une PS échoua sans pour autant que l'exécution ne s'arrête sur une erreur précise mais doit être capable de finir le traitement et me renseigner en final.

    Ceci étant l'objectif principal de ce poste, espérant que cette fois-ci je suis clair et pardon pour le désagrément que j'ai causé dans mes précédents postes.
    Fichiers attachés Fichiers attachés
    Bon courage ou Bonne Chance (selon le contexte)

  11. #11
    Membre Expert
    Homme Profil pro Olivier Dehorter
    Ingenieur de recherche - Ecologue
    Inscrit en
    juin 2003
    Messages
    967
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Dehorter
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : juin 2003
    Messages : 967
    Points : 1 315
    Points
    1 315

    Par défaut

    Ce serait mieux d'avoir des noms de PS qui ne nécessite pas l'utilisation des guillemets !

    Code :
    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
    CREATE PROCEDURE Mixte (
        date_debut date,
        date_fin date,
        step varchar(20),
        code_point_prlv smallint)
    returns (
        nom_step varchar(20) character SET unicode_fss,
        ouvrage varchar(30) character SET unicode_fss,
        date_bilan date,
        ib integer,
        interpretation_ib varchar(300) character SET unicode_fss,
        effluent varchar(35),
        ratio_dco_dbo5 float)
    AS
    begin
       FOR 
           SELECT nom_step 
                  FROM "[10]PS_INDICE_BOUE"(:date_debut,    :date_fin,    :step,    :code_point_prlv)
           INTO : nom_step 
        DO 
           SUSPEND;
     
          FOR 
           SELECT nom_step 
                  FROM "[10]PS_RATIO_DCO_DBO5"(:date_debut,    :date_fin)
           INTO : nom_step 
        DO 
           SUSPEND;
     
    end

  12. #12
    Membre Expert
    Homme Profil pro AbdelHakim Kellouche
    Inscrit en
    mai 2008
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Nom : Homme AbdelHakim Kellouche
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 066
    Points : 2 013
    Points
    2 013

    Par défaut

    merci dehorter olivier, je viens de comprendre l'idée 'enfin ', je vais mettre tout ça en œuvre et vous faire part de l'avancement, merci encore.
    Bon courage ou Bonne Chance (selon le contexte)

  13. #13
    Membre Expert
    Homme Profil pro AbdelHakim Kellouche
    Inscrit en
    mai 2008
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Nom : Homme AbdelHakim Kellouche
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 066
    Points : 2 013
    Points
    2 013

    Par défaut

    Je viens de faire les premiers tests mais c'est pas tout à fait ce que je veux car là à la sortie j'ai les champs des deux procédures dans une seule liste avec plein de données redondantes et de valeurs nuls ce qui me parait logique puisque c'est un "union" qu'il a fait Monsieur SQL.

    Par contre, je voudrais si possible, avoir le résultat dans un fichier texte avec comme rubrique le nom de la procédure exécutée et ses résultats ou l'erreur affrontée ....

    est-ce possible ?!
    Bon courage ou Bonne Chance (selon le contexte)

  14. #14
    Rédacteur/Modérateur
    Avatar de SergioMaster
    Homme Profil pro Serge Girard
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    5 085
    Détails du profil
    Informations personnelles :
    Nom : Homme Serge Girard
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 5 085
    Points : 9 417
    Points
    9 417

    Par défaut

    je comprends enfin mieux le problème (bien qu'être obligé charger le fichier joint au lieu de lire code directement dans le Post me hérisse toujours le poil )

    quel serait exactement la sortie voulue ?

    s'il s'agit simplement de texte je ferais plutôt de la manière suivante
    Code :
    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
     
    CREATE PROCEDURE Mixte (
        date_debut date,
        date_fin date,
        step varchar(20),
        code_point_prlv smallint)
    returns ( Ligne VARCHAR(500) character SET unicode_fss)
    AS
    DECLARE VARIABLE nom_step varchar(20) character SET unicode_fss;
    DECLARE VARIABLE  ouvrage varchar(30) character SET unicode_fss;
    DECLARE VARIABLE  date_bilan date;
    DECLARE VARIABLE  ib integer;
    DECLARE VARIABLE  interpretation_ib varchar(300) character SET unicode_fss;
    DECLARE VARIABLE  effluent varchar(35);
    DECLARE VARIABLE  ratio_dco_dbo5 float;
    BEGIN
       LIGNE='PROCEDURE 1';
       SUSPEND;
       FOR 
           SELECT nom_step 
                  FROM "[10]PS_INDICE_BOUE"(:date_debut,    :date_fin,    :step,    :code_point_prlv)
           INTO :nom_step,:OUVRAGE,:IB,:Interpretation_ib
        DO  BEGIN
           LIGNE= nom_Step||','||Interpretation_ib;  
           SUSPEND;
       END
       LIGNE='PROCEDURE 2';
       SUSPEND;
       FOR 
           SELECT nom_step 
                  FROM "[10]PS_RATIO_DCO_DBO5"(:date_debut,    :date_fin)
           INTO : nom_step,:Effluent,ratio_dco_dbo5 
        DO  BEGIN
           LIGNE=nom_step||','||effluent;
           SUSPEND;
       END
     END^
    ou encore
    Code :
    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
     
    CREATE PROCEDURE Mixte (
        date_debut date,
        date_fin date,
        step varchar(20),
        code_point_prlv smallint)
    returns ( Step varchar(20) character SET unicode_fss,
                 Ligne VARCHAR(500) character SET unicode_fss)
    AS 
    DECLARE VARIABLE  ouvrage varchar(30) character SET unicode_fss;
    DECLARE VARIABLE  date_bilan date;
    DECLARE VARIABLE  ib integer;
    DECLARE VARIABLE  interpretation_ib varchar(300) character SET unicode_fss;
    DECLARE VARIABLE  effluent varchar(35);
    DECLARE VARIABLE  ratio_dco_dbo5 float;
    BEGIN
       STEP='PROCEDURE 1';
       LIGNE='';
       SUSPEND;
       FOR 
           SELECT * 
                  FROM "[10]PS_INDICE_BOUE"(:date_debut,    :date_fin,    :step,    :code_point_prlv)
           INTO :Step,:OUVRAGE,:IB,:Interpretation_ib
        DO  BEGIN
           LIGNE=:OUVRAGE||'  '||:Interpretation_ib;  
           SUSPEND;
       END
       -- Entree proc 2 
       Step='PROCEDURE 2';
       Ligne='';
       SUSPEND;
       FOR 
           SELECT * 
                  FROM "[10]PS_RATIO_DCO_DBO5"(:date_debut,    :date_fin)
           INTO :Step,:Effluent,:ratio_dco_dbo5 
        DO  BEGIN
           LIGNE=:effluent||' ratio : '||:ratio_dco_dbo5 ;
           SUSPEND;
       END
     END^
    il manque peut être quelques ':' par-ci par là
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  15. #15
    Membre Expert
    Homme Profil pro AbdelHakim Kellouche
    Inscrit en
    mai 2008
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Nom : Homme AbdelHakim Kellouche
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 066
    Points : 2 013
    Points
    2 013

    Par défaut

    Salut !

    merci Maitre Serge ... ton code est sexy j'avais jamais pensé à cette simple et efficace utilisation.

    Affaire à suivre car j'ai 2 ou 3 petites choses avant de clôturer ce poste, je vous tiendrais au courant.
    Bon courage ou Bonne Chance (selon le contexte)

  16. #16
    Membre Expert
    Homme Profil pro AbdelHakim Kellouche
    Inscrit en
    mai 2008
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Nom : Homme AbdelHakim Kellouche
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 066
    Points : 2 013
    Points
    2 013

    Par défaut

    Me revoilà

    je viens d'intégrer trois procédures dans le procédure mère si je peux dire :
    Code :
    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
    CREATE PROCEDURE EXECUTE_TOUT (
        date_debut date,
        date_fin date,
        step varchar(30),
        code_point_prlv smallint)
    returns (
        ligne varchar(500) character SET unicode_fss)
    AS
    declare variable nom_step varchar(20);
    declare variable ib integer;
    declare variable nbr_ib integer;
    declare variable nbr_ integer;
    declare variable dco_dbo5 float;
    declare variable interpretation_ib varchar(100);
    declare variable effluent varchar(100);
    declare variable ratio_boue float;
    declare variable extration varchar(50);
    BEGIN
       LIGNE = 'PERIODE DU : ' || date_debut || ' AU : ' || date_fin;
       SUSPEND;
       LIGNE = '';
       SUSPEND;
     
       /******* Indice de boue ***************/
       LIGNE = 'CALCUL DE L''INDICE_BOUE';
       suspend;
       FOR 
           SELECT  nom_step,
                   avg(ib),
                   count(ib),
                   interpretation_ib
           FROM "[10]PS_INDICE_BOUE"(:date_debut, :date_fin, :step, :code_point_prlv)
     
           GROUP BY nom_step, interpretation_ib
     
           INTO :nom_step,
                :IB,
                :nbr_ib,
                :Interpretation_ib
     
       DO BEGIN
                LIGNE = 'STEP : ' || nom_Step || ' -- ' ||
                        'Val. IB : ' || IB || ' -- ' ||
                        'Fréq. IB : ' || nbr_ib || ' -- ' ||
                        'Interp. : ' || Interpretation_ib;
          SUSPEND;
       END
     
       LIGNE = '';
       SUSPEND;
       /******* Ratio DCO / DBO5 ***************/
       LIGNE = 'CALCUL DU RATIO DCO / DBO5';
       SUSPEND;
       FOR 
           SELECT  nom_step,
                   count(ratio_dco_dbo5),
                   avg(ratio_dco_dbo5),
                   effluent
     
           FROM "[10]PS_RATIO_DCO_DBO5"(:date_debut, :date_fin)
     
           GROUP BY nom_step, effluent
     
           INTO :nom_step,
                :nbr_,
                :dco_dbo5,
                :effluent
     
       DO BEGIN
                LIGNE = 'STEP :  ' || nom_Step || ' -- ' ||
                        'Fréq. Rx : ' || nbr_ || ' -- ' ||
                        'Val. Rx DCO/DBO5 : ' || cast(dco_dbo5 AS decimal(15,2)) || ' -- ' ||
                        'Nat. : ' || effluent ;
          SUSPEND;
       END
     
       LIGNE = '';
       SUSPEND;
       /******* Production de boue ***************/
       LIGNE = 'PRODUCION DE BOUE';
       SUSPEND;
       FOR
           SELECT  nom_step,
                   avg(ratio_boue),
                   consigne_boue
     
           FROM "[10]_PS_RATIO_BOUE"(:date_debut, :date_fin)
     
           GROUP BY nom_step, consigne_boue
     
           INTO :nom_step,
                :ratio_boue,
                :extration
     
       DO BEGIN
                LIGNE = 'STEP : ' || nom_Step || ' -- ' ||
                        'Fréq. Rx Boue : ' || nbr_ || ' -- ' ||
                        'Val. Rx Boue  : ' || cast(ratio_boue AS decimal(15,2)) || ' -- ' ||
                        'Extraction : ' || extration ;
          SUSPEND;
       END
    END

    à la sortie j'ai quelques petits problèmes que j'arrive pas à résoudre :

    1. sur la 1ère ligne je dois avoir
      "PERIODE DU 30/04/2012 AU 30/0920"
      alors que j'ai la date écrite à l'envers :
      "PERIODE DU 2012/04/30 AU 2012/09/30"
    2. j'ai des lignes insérées avec comme valeur <null> mais quand j'exécute chacune des procédure à part j'ai pas cette valeur nulle !!!!


    PERIODE DU : 2011-04-30 AU : 2012-09-30

    CALCUL DE L'INDICE_BOUE
    STEP : AIN DEFLA -- Val. IB : 128 -- Fréq. IB : 12 -- Interp. : Condition acceptables de décantation des boues
    STEP : AIN DEFLA -- Val. IB : 185 -- Fréq. IB : 18 -- Interp. : Difficultés de décantation liées Ã* un foisonement de bactéries filamenteuses "bulking"
    STEP : AIN DEFLA -- Val. IB : 53 -- Fréq. IB : 1 -- Interp. : Hors gamme
    STEP : AIN DEFLA -- Val. IB : 46 -- Fréq. IB : 1 -- Interp. : Mauvaise décantation des boues, les flocs ne sont pas assez concentrés
    STEP : CHLEF -- Val. IB : 124 -- Fréq. IB : 19 -- Interp. : Condition acceptables de décantation des boues
    STEP : CHLEF -- Val. IB : 156 -- Fréq. IB : 1 -- Interp. : Difficultés de décantation liées Ã* un foisonement de bactéries filamenteuses "bulking"
    STEP : CHLEF -- Val. IB : 60 -- Fréq. IB : 11 -- Interp. : Hors gamme
    STEP : CHLEF -- Val. IB : 92 -- Fréq. IB : 4 -- Interp. : Les boues sont bien minéralisées et sédimentent facilement
    STEP : CHLEF -- Val. IB : 46 -- Fréq. IB : 1 -- Interp. : Mauvaise décantation des boues, les flocs ne sont pas assez concentrés

    CALCUL DU RATIO DCO / DBO5
    <null>
    STEP : AIN DEFLA -- Fréq. Rx : 3 -- Val. Rx DCO/DBO5 : 2.44 -- Nat. : Effluent Domestique
    STEP : AIN DEFLA -- Fréq. Rx : 5 -- Val. Rx DCO/DBO5 : 1.71 -- Nat. : Effluent Industrie Agro-alimentaire
    STEP : AIN DEFLA -- Fréq. Rx : 8 -- Val. Rx DCO/DBO5 : 1.18 -- Nat. : Hors Gamme
    <null>
    STEP : AMMI MOUSSA -- Fréq. Rx : 2 -- Val. Rx DCO/DBO5 : 2.37 -- Nat. : Effluent Domestique
    STEP : AMMI MOUSSA -- Fréq. Rx : 2 -- Val. Rx DCO/DBO5 : 1.80 -- Nat. : Effluent Industrie Agro-alimentaire
    STEP : AMMI MOUSSA -- Fréq. Rx : 2 -- Val. Rx DCO/DBO5 : 4.88 -- Nat. : Effluent Industriel
    STEP : AMMI MOUSSA -- Fréq. Rx : 2 -- Val. Rx DCO/DBO5 : 0.86 -- Nat. : Hors Gamme
    <null>
    STEP : CHLEF -- Fréq. Rx : 7 -- Val. Rx DCO/DBO5 : 2.31 -- Nat. : Effluent Domestique
    STEP : CHLEF -- Fréq. Rx : 9 -- Val. Rx DCO/DBO5 : 1.89 -- Nat. : Effluent Industrie Agro-alimentaire

    PRODUCION DE BOUE
    <null>
    STEP : AIN DEFLA -- Fréq. Rx Boue : 9 -- Val. Rx Boue : 0.33 -- Extraction : Sous extraction
    STEP : AIN DEFLA -- Fréq. Rx Boue : 9 -- Val. Rx Boue : 1.14 -- Extraction : Sur extraction
    <null>
    <null>
    STEP : CHLEF -- Fréq. Rx Boue : 9 -- Val. Rx Boue : 0.94 -- Extraction : Sous extraction
    STEP : CHLEF -- Fréq. Rx Boue : 9 -- Val. Rx Boue : 1.92 -- Extraction : Sur extraction
    sinon pour le reste tout me semble bon
    Bon courage ou Bonne Chance (selon le contexte)

  17. #17
    Rédacteur/Modérateur
    Avatar de SergioMaster
    Homme Profil pro Serge Girard
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    5 085
    Détails du profil
    Informations personnelles :
    Nom : Homme Serge Girard
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 5 085
    Points : 9 417
    Points
    9 417

    Par défaut

    Pour la ligne 19 , tout a fait normal c'est le type de sortie date par défaut .
    Rien d'insurmontable :
    Code :
    1
    2
     
       LIGNE = 'PERIODE DU : ' ||Extract(DAY FROM  date_debut)||'/'||Extract(MONTH FROM  date_debut)||'/'||Extract(YEAR FROM  date_debut)|| ' AU : ' || Extract(DAY FROM  date_fin)||'/'||Extract(MONTH FROM  date_fin)||'/'||Extract(YEAR FROM  date_fin);
    Pour les lignes a Null , c'est certainement qu'une des données est à NULL justement . Suggestion de lecture le traitement des Valeurs NULL ici
    Contournement , l'utilisation de COALESCE , par exemple :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
          SELECT  nom_step,
                   avg(ib),
                   count(ib),
                   COALESCE(interpretation_ib,' ') -- si NULL alors un espace
           FROM "[10]PS_INDICE_BOUE"(:date_debut, :date_fin, :step, :code_point_prlv)
     
           GROUP BY nom_step, interpretation_ib
     
           INTO :nom_step,
                :IB,
                :nbr_ib,
                :Interpretation_ib
    ou d'une clause where supplémentaire
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
          SELECT  nom_step,
                   avg(ib),
                   count(ib),
                   interpretation_ib 
           FROM "[10]PS_INDICE_BOUE"(:date_debut, :date_fin, :step, :code_point_prlv)
           WHERE interpretation_ib IS NOT NULL 
           GROUP BY nom_step, interpretation_ib
     
           INTO :nom_step,
                :IB,
                :nbr_ib,
                :Interpretation_ib
    PS . Enfin je n'ai pas a télécharger la pièce jointe
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  18. #18
    Membre Expert
    Homme Profil pro AbdelHakim Kellouche
    Inscrit en
    mai 2008
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Nom : Homme AbdelHakim Kellouche
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 066
    Points : 2 013
    Points
    2 013

    Par défaut

    Re,
    merci pour le truc sur la date Serge.
    Par contre et pour les lignes avec des nulls, ça persiste malgré que j'ai pas ces lignes vides au niveau des PS initiales !!!
    Bon courage ou Bonne Chance (selon le contexte)

  19. #19
    Membre Expert
    Homme Profil pro Olivier Dehorter
    Ingenieur de recherche - Ecologue
    Inscrit en
    juin 2003
    Messages
    967
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Dehorter
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : juin 2003
    Messages : 967
    Points : 1 315
    Points
    1 315

    Par défaut

    Alors essayes de neutraliser dans la PS mère chaque requête une à la fois, et ajoute une colonne bidon qui renvoi une constante pour tester la sortie.



    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
       FOR 
           SELECT 1,
                   nom_step,
                   avg(ib),
                   count(ib),
                   interpretation_ib
           FROM "[10]PS_INDICE_BOUE"(:date_debut, :date_fin, :step, :code_point_prlv)
     
           GROUP BY nom_step, interpretation_ib
     
           INTO :Bidon,
                :nom_step,
                :IB,
                :nbr_ib,
                :Interpretation_ib
     
       DO BEGIN
                LIGNE = 'STEP : ' || nom_Step || ' -- ' ||
                        'Val. IB : ' || IB || ' -- ' ||
                        'Fréq. IB : ' || nbr_ib || ' -- ' ||
                        'Interp. : ' || Interpretation_ib;
          SUSPEND;
       END
    Ne pas oublier de déclarer la variable 'Bidon' en RETURNS


    Ca sent une valeur NULL pour un des éléments (et non toute la ligne). En effet si une des variables contient un NULL toute la collation devient NULL

    Code :
    1
    2
    3
    4
    LIGNE = 'STEP : ' || COALESCE(nom_Step, '') || ' -- ' ||
                        'Val. IB : ' || COALESCE(IB, -1) || ' -- ' ||
                        'Fréq. IB : ' || COALESCE(nbr_ib, -1) || ' -- ' ||
                        'Interp. : ' || COALESCE(Interpretation_ib, '');

  20. #20
    Membre Expert
    Homme Profil pro AbdelHakim Kellouche
    Inscrit en
    mai 2008
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Nom : Homme AbdelHakim Kellouche
    Localisation : Algérie

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : mai 2008
    Messages : 2 066
    Points : 2 013
    Points
    2 013

    Par défaut

    Re,
    merci à vous deux, c'est vraiment génial, votre aide m'a aidé d'une grande utilité.

    je reviendrais après MAJ du source
    Bon courage ou Bonne Chance (selon le contexte)

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •