User Defined Function

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen) ausgestattet. Die fraglichen Angaben werden daher möglicherweise demnächst entfernt. Bitte hilf der Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst. Näheres ist eventuell auf der Diskussionsseite oder in der Versionsgeschichte angegeben. Bitte entferne zuletzt diese Warnmarkierung.

Eine Benutzerdefinierte Funktion (englisch user-defined function, Abkürzung UDF) in einer Programmierumgebung bezeichnet eine Funktion, die der Anwender selbst erstellen und in seine Projekte einbinden kann. Sie erfüllt eine Aufgabe wie ein Makro, wird jedoch über einen Funktionsaufruf realisiert. UDFs sind in allgemeinen Programmiersprachen wie Visual Objects, Skriptsprachen wie PHP, spezieller Makrosoftware wie AutoIt und in Datenbanksprachen wie SQL und Firebird verfügbar.

Die Syntax einer UDF muss der Syntax der zugrundeliegenden Sprache entsprechen, wobei vordefinierte Standardfunktionen und andere UDFs in der Definition verwendet werden können. Als Funktion muss eine UDF genau einen Rückgabewert liefern.

Im Gegensatz zu einer Stored Procedure kann eine UDF nicht als Programm gestartet werden.

Beispiele[Bearbeiten]

Einfache UDF in SQL

Der folgenden UDF werden zwei Datumswerte übergeben, die Funktion gibt das jüngere Datum zurück.

 CREATE FUNCTION [MaxDateValue] (@v1 datetime ,  @v2 datetime)  
 RETURNS datetime AS  
 BEGIN 
 IF (@v1 < @v2) 
    RETURN (@v2)
 RETURN(@v1)
 END

Nachdem diese UDF in der Datenbank gespeichert ist, kann sie innerhalb einer SQL-Abfrage verwendet werden:

 SELECT MaxDateValue(KaufDatum, Bestelldatum) FROM Auftrag
External Table Function („externe Tabellenfunktion“) in SQL

In dieser Variante wird genau eine (unbenannte) SQL-Tabelle als Rückgabewert geliefert. Sie kann innerhalb einer SQL-Anweisung überall dort stehen, wo auch eine SQL-Tabelle stehen kann. Auf SQL-Ebene wird ein Kontrolleintrag definiert, der auf ein externes Programm verweist. Das Datenbanksystem unterstützt in der Regel mehrere Programmiersprachen, in denen das Programm geschrieben werden kann.