15. Dezember 2006

Gleich und UnGleich

Manchmal muss man zwei Variablen auf Gleichheit prüfen.

Wenn man einfach nur "IF A = B THEN" schreibt, dann ist das keine Lösung. Falls eine der Variablen NULL ist, dann wird das Ergebnis des Ausdrucks ebenfalls NULL und das IF-Statement interpretiert dies als FALSE. Man benötigt also eine andere Vorgehensweise:

FUNCTION Equal (P_String1 IN VARCHAR2,
P_String2 IN VARCHAR2) RETURN BOOLEAN IS
BEGIN
IF P_String1 = P_String2
OR (P_String1 IS NULL AND P_String2 IS NULL) THEN
RETURN (TRUE);
ELSE
RETURN (FALSE);
END IF;
END;

FUNCTION UnEqual (P_String1 IN VARCHAR2,
P_String2 IN VARCHAR2) RETURN BOOLEAN IS
BEGIN
IF P_String1 != P_String2
OR ( P_String1 IS NULL
AND P_String2 IS NOT NULL)
OR ( P_String1 IS NOT NULL
AND P_String2 IS NULL) THEN
RETURN (TRUE);
ELSE
RETURN (FALSE);
END IF;
END;

Nun kann man Equal und UnEqual sehr einfach benutzen:

IF UnEqual (Var1, Var2) THEN
-- do something
ELSE
-- do something different
END IF;


versuch's

Keine Kommentare: