Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#1

Prüfen auf NULL oder Inhalt

  Alt 4. Mai 2010, 12:12
Datenbank: Oracle • Version: 11 • Zugriff über: Direct Oracle Access
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.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat