Difference entre "" et NULL [MAJ Informix] [SGBD] - SQL/NoSQL - Programmation
Marsh Posté le 25-03-2003 à 15:39:52
Oracle aussi fait la difference...
SQLServer aussi
DB2, chais pas, j'ai jamais touché
il me semble que faire la difference entre NULL et '' fait parti de la norme SQL...
Marsh Posté le 25-03-2003 à 16:11:37
djok_fb a écrit : Oracle aussi fait la difference... |
tu es sur pour Oracle j'ai entendu le contraire
Marsh Posté le 25-03-2003 à 16:20:34
je viens de tester sur SQLWorksheet
j'ai fait "select * from table where champ='';"
ca m'a rien renvoyé
par contre, le "select from table where champ is null;"
m'en renvoie une tripotée (Oracle 8i v8.1.7.4.1)
Marsh Posté le 25-03-2003 à 16:53:22
djok_fb a écrit : je viens de tester sur SQLWorksheet |
ok merci.
Marsh Posté le 25-03-2003 à 16:55:56
Je cherche aussi quelquechose pour voir si mes requete sont copmpatible avec plusieurs base de donnée, quelqu un a site ou un prog pour faire ca ?
(verif des type et syntax)
Merci
Marsh Posté le 25-03-2003 à 17:58:22
théoriquement tous les SGBD digne de ce nom gére la norme SQL/92 mais il semblerait que, par exemple, Oracle ait décidé de faire son boulzor en modifiant des trucs (et il doit pas être le seul a faire son boulet)
tu dois donc pouvoir trouver des infos sur la norme SQL/92
Marsh Posté le 25-03-2003 à 18:10:27
je comprends pas trop vos histoires en NULL et "", la différence n'est pas claire?
Marsh Posté le 25-03-2003 à 18:23:33
Mauvais_Karma a écrit : Voila je cherche a savoir quelle BdD font la difference entre la string vide et le NULL. |
Access aussi fait la différence.
OK, je sors
Marsh Posté le 25-03-2003 à 18:55:53
Mauvais_Karma a écrit : Voila je cherche a savoir quelle BdD font la difference entre la string vide et le NULL. |
DB2 sait faire la difference.
voila voila
Marsh Posté le 25-03-2003 à 20:48:13
++Taz a écrit : je comprends pas trop vos histoires en NULL et "", la différence n'est pas claire? |
[+1] y a une sacrée différence dans les concepts ...
Marsh Posté le 25-03-2003 à 20:50:46
djok_fb a écrit : Oracle aussi fait la difference... |
C'est même pas la norme SQL, mais les rudiments de la programmation. La chaîne vide est un pointeur de chaîne qui pointe nulle part, alors que null est une constante qui vient écraser un pointeur ou une variable si elle n'est pas initialisée.
A noter toutefois que sous Oracle, le type "varchar2" ne fait pas la différence entre '' et NULL, pour ce type, c'est ' ' qui est la chaîne vide.
Marsh Posté le 25-03-2003 à 20:51:55
MagicBuzz a écrit : |
Marsh Posté le 25-03-2003 à 20:52:46
Si tu préfère, la chaîne vide est un pointeur de chaîne qui pointe sur u tableau de 0 octets.
Marsh Posté le 25-03-2003 à 21:17:47
MagicBuzz a écrit : Si tu préfère, la chaîne vide est un pointeur de chaîne qui pointe sur u tableau de 0 octets. |
une chaine n'est pas forcement un pointeur, ça dépends des langages.
Marsh Posté le 25-03-2003 à 21:52:49
A partir du moment où c'est un tableau, c'est forcément un pointeur. C'est pas parceque tu le vois pas (VB par exemple, qui n'est pas censer supporter les pointeurs) que c'est pas un pointeur.
Marsh Posté le 26-03-2003 à 09:40:57
djok_fb a écrit : théoriquement tous les SGBD digne de ce nom gére la norme SQL/92 mais il semblerait que, par exemple, Oracle ait décidé de faire son boulzor en modifiant des trucs (et il doit pas être le seul a faire son boulet) |
oui je suis d'accord avec Toi, y aune "norme" SQL/92 mais tous les SGBD s'y conforme t-il ? je ne pense pas.
Sinon es ce que quelqu un a develloppe un prog/App qui peut utiliser plusieurs base de donnée ? Y a t il d'enorme modif a faire ?
Merci a tous pour vos réponse
Marsh Posté le 26-03-2003 à 10:49:08
Mauvais_Karma a écrit : |
je developpe effectivement pour plusieurs sgbdr. c'est tres dependant du language de prog.je suis en dotnet, et pour l'instant la solution est de passé par des oledbadapter. ce qui me permet de taper indifferemment dans de nombreuses bases (au detriment de certaines perfs je l'accorde).
Marsh Posté le 26-03-2003 à 11:08:26
Mauvais_Karma a écrit : |
ben oracle, c'est sur que non
SQLServer, il a pas les meme noms pour les fonctions (substr devient substring)
dans toutes les DB, les valeurs pour la date systéme, c'est pas la meme (sydate, now, ...)
bref, c'est la merde, je parle meme pas des trucs un peu folklorique comme Unibasic et son SQL a 2 balles (faut dire, UB, c'est du multivalué et le SQL, c'est pas fait pour)
Marsh Posté le 26-03-2003 à 11:08:54
genesis a écrit : |
ok donc je recherche la meme chose mais pour le Java
Marsh Posté le 27-03-2003 à 14:15:32
Pas bien de parler de grossieretes comme unibasic, jok
Ca meriterait un tt
Marsh Posté le 27-03-2003 à 15:19:00
Muchacho a écrit : Pas bien de parler de grossieretes comme unibasic, jok |
kesse tu fous la, c'est pas ta section
pis de toute facon, personne connais unibasic...
Marsh Posté le 25-03-2003 à 15:18:20
Voila je cherche a savoir quelle BdD font la difference entre la string vide et le NULL.
-Résolu
MySQL : oui j'en suis sur
Oracle : OUi (merci djok_fb)
DB2 : oui (merci genesis)
SQL Server : oui (djok_fb)
Access mareek tu me decois
-Je rajoute
Informix : ?
+ Une explication de la difference entre String vide et NULL a été faite dans la suite (merci a ceux qui ont expliqué)
Merci
EDIT : UPDATE Informix
Message édité par mauvais_karma le 26-03-2003 à 14:36:38