Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Funktionen » Funktionstypen

 

Benutzerdefinierte Funktionen

Eine benutzerdefinierte Funktion (auch UDF für User Defined Function) wird von einem Benutzer eines Programms oder einer Umgebung erstellt. Benutzerdefinierte Funktionen unterscheiden sich von Funktionen, die in das Programm oder die Umgebung integriert sind.

Es gibt zwei Mechanismen zum Erstellen von benutzerdefinierten Funktionen in SQL Anywhere. Zum Schreiben der Funktion können Sie die SQL-Sprache oder Java verwenden.

Benutzerdefinierte Funktionen in SQL

Sie implementieren Ihre eigenen Funktionen in SQL mithilfe der CREATE FUNCTION-Anweisung (Webdienste). Die RETURN-Anweisung innerhalb der CREATE FUNCTION-Anweisung legt den Datentyp der Funktion fest.

Sobald eine benutzerdefinierte SQL-Funktion erstellt ist, kann sie überall dort verwendet werden, wo eine integrierte Funktion desselben Datentyps verwendet werden kann.

Weitere Informationen über das Erstellen von SQL-Funktionen finden Sie unter Prozeduren, Trigger und Batches verwenden.

Benutzerdefinierte Funktionen in Java

Java-Klassen bieten eine wirksamere und flexible Möglichkeit, benutzerdefinierte Funktionen zu implementieren, mit dem zusätzlichen Vorteil, dass sie ggf. vom Datenbankserver zu einer Clientanwendung verschoben werden können.

Jede Klassen-Methode einer installierten Java-Klasse kann überall dort als benutzerdefinierte Funktion verwendet werden, wo eine integrierte Funktion desselben Datentyps verwendet werden kann.

Instanzmethoden sind an bestimmte Instanzen einer Klasse gebunden und haben deshalb ein anderes Verhalten als standardmäßige benutzerdefinierte Funktionen.

Weitere Hinweise über das Erstellen von Java-Klassen und über Klassen-Methoden finden Sie unter Klasse erstellen.

Entscheidung, ob eine benutzerdefinierte Funktion oder eine Prozedur erstellt wird

Funktionen sind ähnlich Prozeduren. Eine Entscheidung darüber, ob eine Funktion oder eine Prozedur erstellt wird, hängt davon ab, welche Rückgabe Sie erwarten und welches Objekt abgerufen wird. Wenn Sie darüber entscheiden, ob eine UDF oder eine Prozedur erstellt wird, beachten Sie die nachstehenden Hinweise zu ihren Besonderheiten.

Funktionen:

  • Können einen einzelnen Wert eines beliebigen Typs zurückgeben und ermöglichen es Ihnen, den zurückgegebenen Typ mit der RETURNS-Klausel zu deklarieren.

  • Können an den meisten Stellen verwendet werden, an denen auch Ausdrücke zulässig sind.

  • Ermöglichen nur die Definition von IN-Parametern.

Prozeduren:

  • Können mehrfache Werte mit INOUT- oder OUT-Parametern zurückgeben.

  • Können Ergebnismengen zurückgeben.

  • Können in der FROM-Klausel einer Abfrage oder mit einer CALL-Anweisung bzw. einer Transact-SQL EXECUTE-Anweisung referenziert werden.

  • Können mit benannten Parametern aufgerufen werden.