Wie bereits unter Verwenden von Funktionen beschrieben, bietet DB2 Universal Database integrierte und benutzerdefinierte Funktionen (UDF). Diese Gruppe von Funktionen kann jedoch nicht alle Anforderungen erfüllen. Häufig müssen für bestimmte Tasks angepaßte Funktionen erstellt werden. Mit benutzerdefinierten Funktionen können Sie angepaßte Funktionen erstellen.
Es gibt vier Arten von benutzerdefinierten Funktionen: Quellenfunktionen (oder Schablonen), externe Skalarfunktionen, externe Tabellenfunktionen und externe Tabellenfunktionen aus OLE DB.
Dieser Abschnitt behandelt Quellenfunktionen und externe Skalarfunktionen. Weitere Informationen zu externen Tabellenfunktionen und externen Tabellenfunktionen aus OLE DB enthält das Handbuch SQL Reference.
Benutzerdefinierte Quellenfunktionen ermöglichen benutzerdefinierten Datentypen einen selektiven Verweis auf eine andere integrierte oder benutzerdefinierte Funktion, die der Datenbank bereits bekannt ist. Sie können sowohl Skalar- als auch Spaltenfunktionen verwenden.
Im nächsten Beispiel wird eine benutzerdefinierte Funktion namens MAX erstellt, die auf der integrierten Spaltenfunktion MAX basiert, welche wiederum einen Datentyp DECIMAL als Eingabe verwendet. Die benutzerdefinierte Funktion MAX verwendet einen Datentyp PAY als Eingabe und gibt einen Datentyp PAY als Ausgabe zurück.
CREATE FUNCTION MAX(PAY) RETURNS PAY SOURCE MAX(DECIMAL)
Externe benutzerdefinierte Funktionen werden von Benutzern in einer Programmiersprache geschrieben. Es handelt sich hierbei um externe Skalarfunktionen und externe Tabellenfunktionen. Beide werden im Handbuch SQL Reference erläutert.
Beim folgenden Beispiel wird davon ausgegangen, daß bereits eine Funktion geschrieben wurde, die die Wörter in einer Zeichenfolge zählt. Diese Funktion kann durch die Anweisung CREATE FUNCTION mit dem Namen WORDCOUNT für die Datenbank registriert werden. Anschließend kann sie in SQL-Anweisungen verwendet werden.
Die folgende Anweisung gibt die Personalnummern und die Anzahl der Wörter in den Lebensläufen der Mitarbeiter im ASCII-Format zurück. WORDCOUNT ist eine externe Skalarfunktion, die durch den Benutzer für die Datenbank registriert wurde und nun in der Anweisung verwendet wird.
SELECT EMPNO, WORDCOUNT(RESUME) FROM EMP_RESUME WHERE RESUME_FORMAT = 'ascii'
Genauere Informationen zum Schreiben von benutzerdefinierten Funktionen finden Sie im Handbuch Application Development Guide.