Erstellen von SQL-Skalarfunktionen
SQL-Skalarfunktionen werden beim Entwurf einer Datenbank oder bei der Entwicklung von Anwendungen erstellt. SQL-Skalarfunktionen sind nützlich, wenn die Kapselung einer wiederverwendbaren Logik einen erkennbaren Vorteil bietet. Diese Funktionen werden durch SQL-Anweisungen aufgerufen, die in Anwendungen und Datenbankobjekten verwendet werden.
Vorbereitende Schritte
- SQL-Funktionen lesen.
- Lesen Sie die Eigenschaften von SQL-Funktionen.
- Stellen Sie sicher, dass Sie über die Berechtigungen verfügen, um die Anweisung CREATE FUNCTION (skalar) auszuführen.
Informationen zu dieser Task
Prozedur
Ergebnisse
Beispiel
- Beispiel 1
- Ein Beispiel für eine kompilierte SQL-Funktion.
CREATE FUNCTION GetPrice (Vendor CHAR(20), Pid INT) RETURNS DECIMAL(10,3) LANGUAGE SQL MODIFIES SQL BEGIN DECLARE price DECIMAL(10,3); IF Vendor = 'Vendor 1' THEN SET price = (SELECT ProdPrice FROM V1Table WHERE Id = Pid); ELSE IF Vendor = 'Vendor 2' THEN SET price = (SELECT Price FROM V2Table WHERE Pid = GetPrice.Pid); END IF; RETURN price; ENDDiese Funktion nimmt zwei Eingabeparameter auf und gibt einen einzelnen Skalarwert zurück, der bedingt auf den Werten der Eingabeparameter basiert. Es erfordert die Deklaration und Verwendung einer lokalen Variablen mit dem Namen "price", die den zurückzugebenden Wert enthält, bis die Funktion zurückgegeben wird.
- Beispiel 2
- Ein Beispiel für eine kompilierte SQL-Funktionsdefinition, die einen Cursor, eine Bedingungsbehandlungsanweisung und eine REPEAT-Anweisung enthält.
CREATE FUNCTION exit_func(a INTEGER) SPECIFIC exit_func LANGUAGE SQL RETURNS INTEGER BEGIN DECLARE val INTEGER DEFAULT 0; DECLARE myint INTEGER DEFAULT 0; DECLARE cur2 CURSOR FOR SELECT c2 FROM udfd1 WHERE c1 <= a ORDER BY c1; DECLARE EXIT HANDLER FOR NOT FOUND BEGIN SIGNAL SQLSTATE '70001' SET MESSAGE_TEXT = 'Exit handler for not found fired'; END; OPEN cur2; REPEAT FETCH cur2 INTO val; SET myint = myint + val; UNTIL (myint >= a) END REPEAT; CLOSE cur2; RETURN myint; END@