[Bulk] Select on a null, with multiple tables

Ken Langendock ken.langendock at rogers.com
Thu Feb 11 14:18:55 CST 2010


Curious, I could never get Nulls to work correctly in Powerhouse.

 

I set NULL VALUES NOT ALLOWED in the PDL and then in the table. 

 

I do a before row trigger to store nulls in the database as in:

 

CREATE OR REPLACE TRIGGER br_Users

  BEFORE INSERT OR UPDATE ON Users

  REFERENCING NEW AS NEW OLD AS OLD

  FOR EACH ROW DECLARE

  BEGIN

    :NEW.LanguageId := NULLIF(:NEW.LanguageId,' ');

    :NEW.SecurityClass := NULLIF(:NEW.SecurityClass,' ');

    :NEW.UserDepartmentId := NULLIF(:NEW.UserDepartmentId,' ');

  END;

/

 

That way the Foreign key constraint would not fire if the value was NULL.

Then I can select on " " instead of NULL in the powerhouse source code.

 

Ken

 

 

From: powerh-l-bounces+ken.langendock=rogers.com at lists.sowder.com
[mailto:powerh-l-bounces+ken.langendock=rogers.com at lists.sowder.com] On
Behalf Of Dan Lambshead
Sent: February 11, 2010 2:43 PM
To: powerh-l at lists.sowder.com
Subject: [Bulk] Select on a null, with multiple tables

 

Hello,

 

  I just noticed something strange converting to Oracle 8, using Powerhouse
8.40.D1, when selecting a null value in one table, where multiple tables are
involved. It doesn't seem to work ! Either I have to limit the SELECT to
just that table with the null, or code an additional  statement "SELECT
file IF field IS NULL"  for that table.   Or I can use a define setting it
to 0 when that field is null and use the define in the select.  So I have
the work arounds, but just curious what's going on ?

 

ie.

 

Access Oracle_table_1 &

  Link to Oracle_table_2 opt

 

Select if field of Oracle_table_1 = "Y" and &

  field of Oracle_table_2 IS NULL

 

Doesn't work, Will always return 0 records  !!

 

But the following will work and return some records

 

1) Select if field of Oracle_table_2 IS NULL

 

2) Select if field of Oracle_table_1 = "Y"

    Select Oracle_table_2 if field of Oracle_table_2 IS NULL

 

3) DEFINE D_FIELD  =  field of Oracle_table_2 &
        IF NOT field of Oracle_table_2 IS NULL  ELSE 0

    

    Select if field of Oracle_table_1 = "Y" and & 

     D_FIELD = 0

 

   (This will work for me since the field is actually a date type which
cannot be 0 in the first place

 

 

Thanks

 

Dan

    

 

 

 

 

No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 9.0.733 / Virus Database: 271.1.1/2680 - Release Date: 02/11/10
02:35:00

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.sowder.com/pipermail/powerh-l/attachments/20100211/4ccd39ba/attachment.htm 


More information about the powerh-l mailing list