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 :

[Null][Vide] VARCHAR2 Pareil ou pas ?


Sujet :

Oracle

  1. #21
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Non car encore une fois on peut voir une différence entre chaîne vide et null. C'est une nuance mais elle existe.

    Dans un champ not null je devrais pouvoir mettre une chaîne vide.

  2. #22
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Vous pouvez diviser par NULL, mais pas par 0.

  3. #23
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par nuke_y
    Non car encore une fois on peut voir une différence entre chaîne vide et null. C'est une nuance mais elle existe.

    Dans un champ not null je devrais pouvoir mettre une chaîne vide.
    Alors, et pour la dernière fois, pourquoi ce comportement ne s'applique t-il pas aux autres types :

    où est donc le standard ? du coté de ceux qui appliquent cette particulière particularité ou du coté de ceux qui appliquent strictement la règle ?

  4. #24
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 864
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 864
    Points : 3 438
    Points
    3 438
    Par défaut
    Un autre exemple :

    0 est un nombre pair.
    Et un chiffre inexistant, quelle est sa parité ? Il n'en a pas !

    Pareil pour les chaines :

    Une chaine vide a une longueur de 0.
    Et une chaine inexistante ? Elle n'a pas de longueur

    En fait je pense qu'on va vite tourner en rond, le principe du existe, existe pas, et du "est vide" ou "n'est pas vide" est admis depuis longtemps, donc bien que je puisse _COMPRENDRE_ le fait qu'il est inutile pour une base de données de stocker une chaine vide plutot que la constante NULL ( La raison pourrait être un gain de place ? Une rapidité lors des requêtes car la valeur NULL est plus facilement indexable ? ) je pense qu'il faut rester cohérent avec les principes admis en mathématiques, car un jour il se peut que cette différence soit significative.

    Elle l'est déjà d'ailleurs : imaginons un champ commentaire tout simple, qu'un utilisateur peut choisir de renseigner ou non. On peut donc savoir si la personne l'a renseigné ou non, en testant la nullité du champs, mais nous sommes d'accord qu'une personne qui a prit le temps de mettre un commentaire vide a fait une action en plus qu'une personne n'ayant pas du tout fait de commentaire, non ? Un vote blanc, est différent d'une abstention

  5. #25
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Bah le standard il est dans le reste du monde je pense.

    Le reste du monde considère que '' est différent de null, alors pourquoi pas Oracle ? Ils décident de faire comme ils veulent, soit, mais dans ce cas il ne faut pas s'étonner si beaucoup de gens râlent. Après c'est un choix qu'ils font, mais ils sont minoritaires dans le monde des SGDB (et des languages objet).

  6. #26
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par nuke_y
    Bah le standard il est dans le reste du monde je pense.

    Le reste du monde considère que '' est différent de null, alors pourquoi pas Oracle ? Ils décident de faire comme ils veulent, soit, mais dans ce cas il ne faut pas s'étonner si beaucoup de gens râlent. Après c'est un choix qu'ils font, mais ils sont minoritaires dans le monde des SGDB (et des languages objet).
    D'accord, mais ne parlons-pas donc de logique sur ce point.

  7. #27
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Alors attention, si on parle de logique pure, surtout basée sur l'aspect... réaliste des données, effectivement null et '' c'est pareil, aucun problème là dessus je l'ai dit au début. Du point de vue des données (et donc du "modèle" si je peux m'exprimer ainsi) c'est comme ça que ça doit marcher.

    Maintenant avec l'arrivée des languages objet, une nuance est apparue entre '' et null. Cette nuance a été... disons tolérée et intégrée par tous les SGDB et pas par Oracle. Donc maintenant comme je le disais ils peuvent s'aligner (et rendre l'interopérabilité plus facile) ou garder leur position en disant que c'est pas parce que le reste du monde se jette dans un ravin qu'ils s'y jetteront aussi.

    Mais en temps qu'interopérateur je préférerai qu'ils s'alignent.

  8. #28
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 864
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 864
    Points : 3 438
    Points
    3 438
    Par défaut
    Moi je suis nul, et pourtant, je suis loin d'être vide !!!!!!!!!!!!!!!!


  9. #29
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Moi je suis nul, et pourtant, je suis loin d'être vide !!!!!!!!!!!!!!!!


  10. #30
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Moi je suis nul, et pourtant, je suis loin d'être vide !!!!!!!!!!!!!!!!

    CQFD !!
    Magistrale démonstration, rien à dire.

  11. #31
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    [quote="nuke_y"]...Maintenant avec l'arrivée des languages objet, une nuance est apparue entre '' et null. Cette nuance a été... disons tolérée et intégrée par tous les SGDB et pas par Oracle...[/ quote]

    simple question de réthorique :

    alors est-ce que ça n'aurais pa du être aux "petits nouveaux", donc les langages objets, de s'adapter aux usages des SGBD déjà bien établi ?
    je m'interroge...

  12. #32
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Cette différence date de bien avant ! elle apparaît avec la notion de pointeur.
    En C, par exemple, lorsque l'on réserve un emplacement pour un objet, l'adresse mémoire ne contient rien (sinon la valeur en cours). Pour une chaîne de caractère, lorque l'on l'initialise avec rien, on trouve tout de même le terminateur de chaîne \0. Ce qui pourrait expliquer "l'infime" différence. Toujours est-il que si l'on interroge la longueur d'une telle chaîne on obtient bien 0, et de toute façon le contenu est vide ou null ou ce que vous voulez, mais bref, il n'y a rien !

  13. #33
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Ouaih mais le C j'en étais pas sûr alors j'ai préféré en rester aux languages objets. M'enfin bon on voit bien que cette nuance existe dans les languages, et qu'il y a donc une différence entre les languages et le SGDB, différence effacée par les autres SGDB et pas par Oracle.

    Et tient tant qu'on y est, est-ce qu'il n'y a QUE Oracle qui a cette équivalence entre '' et null ?

  14. #34
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Je ne pensais pas que ma question succiterait autant de réaction.
    En tout cas merci beaucoup pour la réponse et toutes ces explications.
    Sinon il faut juste le savoir . C'est tout.

    null, vide ou string tout çà c'est pareil c'est que des bits

  15. #35
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par ZeKiD
    Je ne pensais pas que ma question succiterait autant de réaction.
    En tout cas merci beaucoup pour la réponse et toutes ces explications.
    Sinon il faut juste le savoir . C'est tout.

    null, vide ou string tout çà c'est pareil c'est que des bits
    Sauf que les strings ne présentent pas les bits de la même façon

  16. #36
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 864
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 864
    Points : 3 438
    Points
    3 438
    Par défaut
    Moi je veux bien changer ne serait-ce qu'un bit dans la base de données de mon compte en banque

  17. #37
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Citation Envoyé par SheikYerbouti
    Sauf que les strings ne présentent pas les bits de la même façon
    C'est exactement ce que je pensais !!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. fonction vide: compilateur optimise ou pas
    Par kacedda dans le forum C++
    Réponses: 14
    Dernier message: 21/01/2008, 17h15
  2. Réponses: 2
    Dernier message: 21/12/2007, 17h05
  3. [AJAX] Résultat de requête Ajax vide sous IE, mais pas sous FF
    Par brazilia28 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/09/2007, 17h18
  4. Pointeur null, mais je ne comprends pas
    Par amine_en_france dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 11/07/2007, 15h14
  5. erreur de valaur nulle..qui ne l'est pas :-(
    Par bachilbouzouk dans le forum ASP
    Réponses: 7
    Dernier message: 20/04/2005, 09h52

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