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 Oracle Discussion :

Nbre de champs à NULL dans une table ?


Sujet :

SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Nbre de champs à NULL dans une table ?
    Bonjour,


    Je suppose que la question a déjà due être posée, mais je ne trouve pas de réponse dans les fonctions de recherche...

    J'aimerais une fonction qui me permette de connaitre quelles sont les colonnes d'une table qui comportent des NULL.
    La vue user_tab_columns contient les nom de table et de colonne mais pas les valeurs des champs...

    Merci d'avance !

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Vous parlez de contraintes ou de valeurs ?
    S'il s'agit de valeurs alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    WHERE MaCol1 IS NULL
    [ OR MaCol2 IS NULL
      ...
      OR MaColn IS NULL ]
    S'il s'agit de contraintes, peut être en consultant ALL_CONSTRAINTS.

    Enfin merci de respecter les règles du forum et d'indiquer votre version d'Oracle.

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    select 
      count(*)-count(empno) empno,
      count(*)-count(ename) ename, 
      count(*)-count(comm) comm 
    from 
      emp;
     
         EMPNO      ENAME       COMM
    ---------- ---------- ----------
             0          0         10

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Re-B,

    Alors pour la version d'Oracle, je vais dire 9i mais mon but est de faire une fonction tournant sur les 3 (8, 9, 10). Dsl de ne pas l'avoir précisée plus tôt.

    Oui, en fait, j'aurais aimé une requête dynamique qui, en donnant en entrée le nom d'une table, retourne le nom de chaque colonne qui comporte au moins une valeur positionnée à NULL.

    Le but est de ne pas passer en paramétre le nom des colonnes de maniére à ce que la fonction s'adapte à chaque table.

    Je pense qu'il n'est pas possible de le faire sans bloc BEGIN [...] END, avec des déclarations de variables... Maintenant, si qqn sait le faire simplement, je suis preneur !

    Merci !

  5. #5
    McM
    McM est déconnecté
    Expert éminent

    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
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Avec les stats à jour (en 9)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT column_name, num_nulls
    FROM user_tab_columns 
    WHERE table_name = p_table_name
    AND num_nulls > 0

Discussions similaires

  1. [AC-2003] insertion d'un champ NULL dans une table en VBA
    Par marieo dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/08/2009, 18h46
  2. Récupération d'un champ null dans une table
    Par floctc dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/06/2009, 09h12
  3. Réponses: 16
    Dernier message: 21/08/2008, 13h58
  4. Tous les champs SAUF dans une table.
    Par Yepazix dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/08/2005, 16h01
  5. recherche Date nulle dans une table
    Par lol_adele dans le forum Bases de données
    Réponses: 6
    Dernier message: 16/04/2004, 14h06

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