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 :

IS NULL ou =NULL ?


Sujet :

SQL Oracle

  1. #1
    Membre confirmé Avatar de magic charly
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut IS NULL ou =NULL ?
    Bonjour a tous,

    Je souhaiterais avoir les idées clair sur un point précis. En PL/SQL y a t il une diffférence entre =NULL et IS NULL. De la même façon y a t'il une différence entre !=NULL et IS NOT NULL?

    Merci pour vos infos sur ce point qui me place souvent dans l'hésitation.





    PS: je suis en Oracle 10i

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    NULL est incomparable... donc oui, NULL doit être utiliser UNIQUEMENT avec IS ou IS NOT

  3. #3
    Membre Expert

    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
    Par défaut
    Citation Envoyé par Fred_D
    NULL est incomparable... donc oui, NULL doit être utiliser UNIQUEMENT avec IS ou IS NOT
    Sauf dans une requête UPDATE quand tu veux affecter explicitement NULL à une colonne

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    certes, je ne parle bien que de comparaison et non d'affectation de valeur

  5. #5
    Membre Expert

    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
    Par défaut
    Je me doute Fred que TOI tu connais la différence, je voulais simplement compléter tes propos pour un débutant qui passerait ici...

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut

  7. #7
    Membre chevronné Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Par défaut
    Je me suis posé la même question et j'avais eu ces réponses

    http://www.developpez.net/forums/sho...d.php?t=136020

    Depuis je n'ai jamais oublié l'adage de Fred_D

    "NULL est tellement nul qu'il n'est même pas égale à lui même"

  8. #8
    Membre confirmé Avatar de magic charly
    Inscrit en
    Février 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 167
    Par défaut
    On ne pourrait donc affecter NULL que dans le cas d'un UPDATE ?
    Ne peut on pas imaginer simplement d'avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    procedure is_nullll(p_x IN VARCHAR2) IS 
     
    BEGIN
     
    p_x:=NULL;
     
    END is_nullll;


  9. #9
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Si on peut affecter la valeur NULL à une variable (y compris une colonne pour l'UPDATE ou l'INSERT). C'est la comparaison qui n'est pas possible... comment comparer du vide avec quelque chose

  10. #10
    Membre Expert
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Par défaut
    Pour oracle, NULL n'est pas une valeur mais un indicateur qui veut dire qu'il n'y a pas de valeur. En gros, ça veut dire non-renseigné, inconnu, ou sans objet.

    Vous ne pouvez pas affirmer qu'une valeur inconnue est égale à une autre valeur inconnue, vous ne pouvez dire que "je sais pas". D'un autre coté, vous ne pouvez pas dire qu'une valeur inconnuer est différenter d'une autre valeur inconnu, vous ne pouvez là aussi dire que "je sais pas".

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

Discussions similaires

  1. Arbre de jeu - jeux à somme nulle/non nulle
    Par bruce-willis dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 21/11/2008, 13h53
  2. WHERE NULL IS NULL
    Par FloBaoti dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2008, 11h40
  3. "IS NULL" et "= NULL"
    Par Wurlitzer dans le forum SQL
    Réponses: 5
    Dernier message: 12/11/2007, 10h49
  4. [DB2/SQL] Passer une colonne de NULL à NOT NULL
    Par tux2005 dans le forum DB2
    Réponses: 6
    Dernier message: 08/06/2007, 22h57
  5. Sql serveur 2000 Changer null/not null et valeur par defaut
    Par mictif dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/03/2006, 07h55

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