Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Oracle NULL vs '' revisited

Re: Oracle NULL vs '' revisited

From: William Robertson <williamr2019_at_googlemail.com>
Date: Fri, 24 Aug 2007 07:49:39 -0700
Message-ID: <1187966979.807574.73650@l22g2000prc.googlegroups.com>


On Aug 24, 9:34 am, "Martin T." <0xCDCDC..._at_gmx.at> wrote:
> William Robertson wrote:
> > On Aug 23, 3:13 pm, "Martin T." <0xCDCDC..._at_gmx.at> wrote:
> >> William Robertson wrote:
> >>> On Aug 22, 7:22 pm, "Paul Linehan" <plinehan__A_at_T__yahoo__D.OT__COM>
> >>> wrote:
> >>>> Mark D Powell wrote:
> >>>>> I have always had difficulty with the concept that an empty string
> >>>>> should not be considered a NULL value to begin with. What does an
> >>>>> empty string hold?
> >>>> Take an ex-girlfriend of mine, she had a child in the States
> >>>> and *_specifically_* didn't give her (the child) a middle name.
> >>>> So, Middle_Initial is blank '' - and not NULL, since it is a
> >>>> known quantity - as Donald Rumsfeld might say, a "known unknown".
> >>>> NULLs are unknown unknowns. Despite Mr. Rumsfeld's verbal
> >>>> gymnastics, there is no such thing as an unknown known.
> >>>> You concatenate blank with a string, and you simply get the string
> >>>> back - do the same with NULL and you get NULL.
> >>>> I'd say NULLs are readily distinguishable from blank strings.
> >>>> Paul...
> >>> (...)
> >>> Oracle treats nulls as empty strings when concatenating, often leading
> >>> to cries of inconsistency in this sort of debate, but it is the
> >>> overwhelmingly more useful behaviour.
> >> Yeah. And Length('') == NULL which is bloody awful.
> >> Imho, Oracle just messed up on varchar2 and NULL. (from a practical, not
> >> a philosophical point of view)
>
> >> br,
> >> Martin
>
> > Well as theses debates always show it can be debated endlessly, but
>
> Well yes. It's what we are doing atm, isn't it? :-)
>
> > surely a length of 0 is incorrect for an unknown value; and even in
>
> Which is exactly the problem with Oracle. LENGTH(NULL) should be NULL
> but LENGTH('') be better off being 0 (for all string processing puroses
> I can think of atm) which is o.c. not possible in Oracle.
>
> > the case of specifically-no-middle-name guy, if we are not including
> > it in a count (how many names does he have?) surely it would be
> > inconsistent to give it a length (what's the average length of his
> > names?)
>
> I must say I really don't get the middle-name example, sorry. It's a
> strange analogy gone rampant, if you ask me. :-P
>
> cheers,
> Martin

I'm still struggling to find an example of a non-null empty string, especially if we're agreed that no-middle-name guy has two names and not three. If we had one of those then it might be easier to agree that its length should be 0. Received on Fri Aug 24 2007 - 09:49:39 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US