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

SQL Firebird Discussion :

Eviter de remonter des NULL en sortie de procédure sotckée


Sujet :

SQL Firebird

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    610
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 610
    Points : 213
    Points
    213
    Par défaut Eviter de remonter des NULL en sortie de procédure sotckée
    Bonjour.

    Parfois, cela arrive, des valeurs retournées par une procédure stockée possèdent la valeur NULL à la suite d'un FOR SELECT DO..

    Or dans mon application C qui utilise une bibliothèque de fonctions SQL ( SQL Toolkit de National instrument ) j'exploite des fonctions qui permettent d'extraire les valeurs des colonnes des enregistrements retournés en fonction de leur type supposé connu à l'avance ( Char, Int, short, etc. ).

    Or ces fonctions plantent dés lors que je récupère une valeur NULL ( pas facile d'affecter NULL à un short par exemple. )

    J'aurai donc aimé savoir si je pouvais simplement, au sein de ma procédure stockée remplacer les valeurs 'NULL' par des valeurs par défaut lors d'une opération SELECT.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    FOR
     SELECT Champ1, Champ2
     FROM TABLE
     INTO :var1
             :var2
    DO
      SUSPEND;
    Merci d'avance.

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 379
    Points : 376
    Points
    376
    Par défaut
    une solution parmi d'autres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var1 = 'coucou';
    var2 = 'hello';
    FOR
     SELECT Champ1, Champ2
     FROM TABLE
     INTO :var1,  :var2
    DO
      SUSPEND;
    ce qui charge par défaut "coucou" et "hello" dans les variables var1 et var2

    une autre solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    FOR
     SELECT Champ1, Champ2
     FROM TABLE
     INTO :var1,  :var2 DO
    BEGIN
      IF( var1 IS NULL )THEN
        var1 = 'truc';
     
      IF( var2 IS NULL)THEN
        var2 = 'paf';
     
      SUSPEND;
     
    END

  3. #3
    Membre actif Avatar de TMuet
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2003
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 225
    Points : 288
    Points
    288
    Par défaut
    sNvl ou idNvl

    Avec ça tu peux retourner soit ta valeur soit une autre si la valeur est NULL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SNVL(MONCHAMP, 'PAS GLOP') FROM MATABLE

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 379
    Points : 376
    Points
    376
    Par défaut
    coalesc en firebird 1.5 aussi...

  5. #5
    Membre actif Avatar de TMuet
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2003
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 225
    Points : 288
    Points
    288
    Par défaut
    Citation Envoyé par jean-jacques varvenne
    coalesc en firebird 1.5 aussi...

    Effectivement, coalesce est encore mieux puisqu'à la différence de ma méthode, il n'y a pas besoin des UDF.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    610
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 610
    Points : 213
    Points
    213
    Par défaut
    Merci pour vos informations.

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

Discussions similaires

  1. Récupération des paramètres en sortie d'1 procédure stockée
    Par navis84 dans le forum Bases de données
    Réponses: 1
    Dernier message: 23/12/2004, 11h40
  2. Création des états de sortie dans JBuilder ?
    Par k_hamza75 dans le forum JBuilder
    Réponses: 2
    Dernier message: 15/11/2004, 11h44
  3. Gestion des null
    Par Bruno75 dans le forum Décisions SGBD
    Réponses: 19
    Dernier message: 20/09/2004, 13h34
  4. [info - SQLpro] - nouvel article : probématique des NULL
    Par SQLpro dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 17/09/2004, 09h49

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