Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Prüfen auf NULL oder Inhalt (https://www.delphipraxis.net/151053-pruefen-auf-null-oder-inhalt.html)

sirius 4. Mai 2010 12:12

Datenbank: Oracle • Version: 11 • Zugriff über: Direct Oracle Access

Prüfen auf NULL oder Inhalt
 
Ich übergebe an eine Stored Procedure verschiedene Werte, u.a. auch zwei Strings( =Varchar2), welche auch mal leer sein können.
DOA übersetzt diesen Parameter (bei DeclareAndSet) dann auch gleich zu NULL. Die Query sieht so aus:
SQL-Code:
begin
  addTraffic(:Zeit,:SrcIP,:DestIP,:Traffic);
end;
SrcIP und/oder DestIP können leer sein, wenn es eben keine IP gibt. In der SP wird nach verschiedenen Überprüfungen etwas in die Tabellen eingetragen. Eine Überprüfung sieht folgendermaßen aus:
SQL-Code:
Select count(id_zeit) into n from dbt_traffic
      where id_Zeit=id
      and SrcIP=aSrcIP  --SrcIP ist ein Spaltenname, aSrcIP ist der übergebene Parameter
      and DestIP=aDestIP;
-- hier wird abhängig von n ein Event (dbms_alert) ausgelöst
Und dummerweise ergibt der Ausdruck "Null=Null" --> FALSE. Das bedeutet, obwohl es bspw eine Zeile SrcIP gibt, die NULL ist und aSrcIP auch Null, wird diese Zeile nicht gefunden (die anderen Bedingungen gibt es).

Wie kann ich das umgehen? Die Stored Procedure ist auch die einzige, die die entsprechenden Tabellen füllt, weswegen ja auch erst das NULL in die Tabellen kommt, was mich, bis auf obiges Problem auch nicht stört.

DeddyH 4. Mai 2010 12:22

Re: Prüfen auf NULL oder Inhalt
 
Könntest Du die beiden Werte nicht einfach explizit gegen NULL prüfen?
SQL-Code:
...
where id_Zeit=id
      and (SrcIP=aSrcIP) or
      (SrcIP IS NULL and aSrcIP IS NULL)
So ähnlich zumindest.

sirius 4. Mai 2010 12:34

Re: Prüfen auf NULL oder Inhalt
 
Oh man, das war ja wieder zu billig. :wall:

Merci Vielmahls.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz