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

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Useful Oracle books - C.J. Date theory vs. practicality

RE: Useful Oracle books - C.J. Date theory vs. practicality

From: Lex de Haan <lex.de.haan_at_naturaljoin.nl>
Date: Sat, 29 May 2004 13:38:25 +0200
Message-ID: <JFEEIGBIDOCCDALDIPLNCEPFCDAA.lex.de.haan@naturaljoin.nl>


the "IS NULL" operator is a great operator to check for attributes for being NULL,
no problem. that's the only thing it's supposed to do ;-) and it is purely two-valued.

your suggestion is a nice "work around", and you could even write it more condensed by using functions like COALESCE and CASE expressions to handle the UNKNOWN case caused by null=values.

my only point (somewhere at the beginning of this thread :-) was that certain seemingly obvious logical equivalences don't hold in three-valued logic.

and I guess it is hard to make your workaround generic -- what if the <condition> is constructed dynamically, at run time, and can e.g. be a compound predicate with some ANDs and ORs? then your "outer IF" becomes almost impossible to generate...

Cheers,
Lex.



visit my website at http://www.naturaljoin.nl

-----Original Message-----
From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org]On Behalf Of Nuno Souto Sent: Saturday, May 29, 2004 08:57
To: oracle-l_at_freelists.org
Subject: Re: Useful Oracle books - C.J. Date theory vs. practicality

Lex de Haan said,on my timestamp:29/05/2004 5:29 PM:

> the IS NULL operator is two-valued,
> so it would never show the "desired" behavior for this experiment...
> 'string' IS NULL always evaluates to FALSE, and '' IS NULL evaluates to
TRUE
> (which is quite unfortunate, but that's another discussion)

I see your point, of course. Otherwise it's harder to show the problem.

But the thing that bugs me is: isn't the Oracle (and presumably others db) solution of "IS NULL" a good solution?

I mean: avoid the TRUE/FALSE/NULL logic problem without re-defining the entire IF?

Is there something wrong with:
IF (<var> is NOT NULL) then

   IF(<var> = 'something') then do_this
   ELSE do_that
   END IF;
ELSE do_nothing;
END IF;
other than the obvious verbosity/style of writing?

(says he who had to code something like this ad-infinitum in a project 3 years ago...)

--
Cheers
Nuno Souto
in sunny Sydney, Australia
dbvision_at_optusnet.com.au
----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to:  oracle-l-request_at_freelists.org
put 'unsubscribe' in the subject line.
--
Archives are at http://www.freelists.org/archives/oracle-l/
FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------


---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request_at_freelists.org put 'unsubscribe' in the subject line. -- Archives are at http://www.freelists.org/archives/oracle-l/ FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------

Received on Sat May 29 2004 - 06:35:53 CDT

Original text of this message

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