![]() |
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:
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:
begin
addTraffic(:Zeit,:SrcIP,:DestIP,:Traffic); end;
SQL-Code:
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).
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 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. |
Re: Prüfen auf NULL oder Inhalt
Könntest Du die beiden Werte nicht einfach explizit gegen NULL prüfen?
SQL-Code:
So ähnlich zumindest.
...
where id_Zeit=id and (SrcIP=aSrcIP) or (SrcIP IS NULL and aSrcIP IS NULL) |
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 19:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz