Skalare JavaScript-UDFs¶
Unter diesem Thema werden skalare JavaScript-UDFs (benutzerdefinierte Funktion) behandelt.
Unter diesem Thema:
Einführung¶
Eine skalare JavaScript-UDF gibt für jede Eingabezeile eine Ausgabezeile zurück. Die Ausgabezeile darf nur eine Spalte/einen Wert enthalten.
Ein grundlegendes Beispiel finden Sie unter Einführung in JavaScript-UDFs. Weitere Beispiele sind weiter unten zu finden.
Bemerkung
Skalare Funktionen (UDFs) haben einen Grenzwert von 500 Eingabeargumenten.
Beispiele¶
Dieser Abschnitt enthält Beispiele für skalare JavaScript-UDFs.
Rekursion¶
Im folgenden Beispiel wird zeigt, dass sich eine JavaScript-UDF selbst aufrufen kann (d. h. sie kann eine Rekursion verwenden):
Erstellen Sie eine rekursive UDF:
CREATE OR REPLACE FUNCTION RECURSION_TEST (STR VARCHAR)
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS $$
return (STR.length <= 1 ? STR : STR.substring(0,1) + '_' + RECURSION_TEST(STR.substring(1)));
$$
;
Rufen Sie die rekursive UDF auf:
SELECT RECURSION_TEST('ABC');
+-----------------------+
| RECURSION_TEST('ABC') |
|-----------------------|
| A_B_C |
+-----------------------+
Kundenspezifische Ausnahme¶
Das folgende Beispiel zeigt eine JavaScript-UDF, die eine kundenspezifische Ausnahme auslöst:
Erstellen Sie die Funktion:
CREATE FUNCTION validate_ID(ID FLOAT)
RETURNS VARCHAR
LANGUAGE JAVASCRIPT
AS $$
try {
if (ID < 0) {
throw "ID cannot be negative!";
} else {
return "ID validated.";
}
} catch (err) {
return "Error: " + err;
}
$$;
Erstellen Sie eine Tabelle mit gültigen und ungültigen Werten:
CREATE TABLE employees (ID INTEGER);
INSERT INTO employees (ID) VALUES
(1),
(-1);
Rufen Sie die Funktion auf:
SELECT ID, validate_ID(ID) FROM employees ORDER BY ID;
+----+-------------------------------+
| ID | VALIDATE_ID(ID) |
|----+-------------------------------|
| -1 | Error: ID cannot be negative! |
| 1 | ID validated. |
+----+-------------------------------+