Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Erzeugen einer UDF

Eine UDF wird mit der SQL-Anweisung CREATE FUNCTION erzeugt, siehe "CREATE FUNCTION - User Defined Function (UDF) erzeugen". Eine UDF kann auch im Rahmen der SQL-Anweisung CREATE SCHEMA erzeugt werden, siehe "CREATE SCHEMA - Schema erzeugen".

UDFs können mit Eingabeparametern definiert werden.

Empfehlung Parameternamen sollten sich (z.B. durch Vergabe eines Präfixes wie par_) von Spaltennamen unterscheiden.

Beim Erzeugen der UDF muss der aktuelle Berechtigungsschlüssel das EXECUTE-Privileg für die in der UDF direkt aufgerufenen Routinen besitzen. Zusätzlich muss er für alle Tabellen und Spalten, die in der UDF angesprochen werden, diejenigen (SELECT-)Privilegien besitzen, die benötigt werden, um die in der Routine enthaltenen DML-Anweisungen ausführen zu können.

Der Text der UDF ist in SESAM/SQL vollständig in der Programmiersprache SQL geschrieben. Folgende SQL-Anweisungen zur Datensuche sind in UDFs zulässig, siehe Abschnitt „CREATE FUNCTION - User Defined Function (UDF) erzeugen":


SQL-Anweisung

ohne Cursor

Funktion in der UDF

siehe

SELECT

Liest einen einzelnen Satz

"SELECT - Einzelnen Satz lesen"

SQL-Anweisung

mit Cursor



OPEN

Öffnet einen lokalen Cursor

"OPEN - Cursor öffnen"

FETCH

Positioniert einen lokalen Cursor und liest ggf. den aktuellen Satz

"FETCH - Cursor positionieren und Satz lesen"

CLOSE

Schließt einen lokalen Cursor

"CLOSE - Cursor schließen"

Tabelle 26: SQL-Anweisungen zur Datenmanipulation in UDFs


SQL-Anweisungen zum Ändern von Daten (INSERT, UPDATE, DELETE, MERGE) sind in den UDFs von SESAM/SQL nicht zulässig.

Neben obigen SQL-Anweisungen kann eine Prozedur auch Kontrollanweisungen (siehe Abschnitt „Kontrollanweisungen in Routinen") und Diagnoseanweisungen(siehee Abschnitt „Diagnoseinformationen in Routinen") enthalten.

Eine UDF darf keine dynamisch formulierten SQL-Anweisungen oder Cursorbeschreibungen enthalten, siehe Abschnitt „Dynamische SQL".

Der aktuelle Berechtigungsschlüssel erhält automatisch das EXECUTE-Privileg für die erzeugte UDF. Hat er für die betreffenden Privilegien sogar die Berechtigung, diese weitergeben zu dürfen, dann darf er auch das EXECUTE-Privileg an andere Berechtigungsschlüssel weitergegeben.

Eine SQL-Anweisung in einer UDF darf auf die Parameter der UDF und (wenn die Anweisung Teil einer COMPOUND-Anweisung ist) auf lokale Variablen, jedoch nicht auf Benutzervariablen zugreifen.

Kommentare

Beschreibende Kommentare (siehe "Kommentar") können beliebig in eine UDF eingefügt werden.