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

Oracle Discussion :

Les champs vides dans oracle


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Consultante BI
    Inscrit en
    Mars 2011
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultante BI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 236
    Par défaut Les champs vides dans oracle
    Bonjour ,

    je rencontre un soucis avec les champs vides dans oracle :

    Ma requête est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        SELECT DYNINF_VALUE   FROM  vl_data.CARD_DYNINF F WHERE inf_code = 'DATNAISS'
    Ce champs pourra être nul ou vide avec Nvl j'ai pu remplacer les Nulls par 01/01/1900

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       NVL(( SELECT DYNINF_VALUE   FROM  vl_data.CARD_DYNINF F WHERE inf_code = 'DATNAISS') ,'01/01/1900')
    Ma question: il y a t-il une autre commande comme NVL mais qui teste si un champs est vide ou non .

    Merci d'avance.

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    IS NULL

  3. #3
    Expert confirmé 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
    Par défaut
    Vous voulez dire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT Nvl(DYNINF_VALUE, '01/01/1900')   
      FROM vl_data.CARD_DYNINF F 
     WHERE inf_code = 'DATNAISS'
    NULL-Related Functions

  4. #4
    Membre éclairé
    Femme Profil pro
    Consultante BI
    Inscrit en
    Mars 2011
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultante BI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 236
    Par défaut
    Oui, j'utilise une requête imbriqué
    Voila un exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select d.card_no,NVL(( SELECT DYNINF_VALUE   FROM  vl_data.CARD_DYNINF F WHERE f.card_no = d.card_no and f.inf_code = 'DATNAISS') ,'01/01/1900') AS DATE_NAISSANCE  From cards d
    je voudrais juste mettre au lieu des champs nulls et les champs vide la date '01/01/1900' avec Nvl j'ai réussi à changer les champs nulls , il me reste les champs vides

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    1. Je ne vois pas l'intérêt de la requête scalaire ici.
    2. Oracle traite les vides comme étant des nulls.
      J'imagine donc que ce que vous appelez vide doit comporter au moins un espace.


    Essayez cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT d.card_no
         , coalesce(trim(F.DYNINF_VALUE), '01/01/1900') AS DATE_NAISSANCE
      FROM cards d
           LEFT OUTER JOIN vl_data.CARD_DYNINF F
             ON f.card_no = d.card_no
            AND f.inf_code = 'DATNAISS';

  6. #6
    Membre éclairé
    Femme Profil pro
    Consultante BI
    Inscrit en
    Mars 2011
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultante BI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 236
    Par défaut
    Merci

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

Discussions similaires

  1. [Oracle] Ignorer les champs vides dans une requête sql
    Par roswina dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/05/2015, 09h29
  2. Utiliser les champs vides d'une table dans un code
    Par marcelstan dans le forum Access
    Réponses: 1
    Dernier message: 23/03/2015, 12h34
  3. La gestion des chaines vides dans Oracle (et les autres SGBD)
    Par tchize_ dans le forum Décisions SGBD
    Réponses: 25
    Dernier message: 28/10/2013, 17h50
  4. Authentification et champ vide dans les formulaires
    Par HaloKard dans le forum Zend_Acl & Zend_Auth
    Réponses: 6
    Dernier message: 23/12/2010, 15h39
  5. Réponses: 6
    Dernier message: 23/01/2007, 10h17

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