UDFs JavaScript scalaires¶
Cette chapitre traite des UDFs JavaScript scalaires (fonctions dĂ©finies par lâutilisateur).
Dans ce chapitre :
Introduction¶
Une UDF JavaScript renvoie une ligne de sortie pour chaque ligne dâentrĂ©e. La ligne de sortie ne doit contenir quâune seule colonne/valeur.
Un exemple de base se trouve dans PrĂ©sentation des UDFs JavaScript. Dâautres exemples sont prĂ©sentĂ©s ci-dessous.
Note
Les fonctions scalaires (UDFs) ont une limite de 500 arguments dâentrĂ©e.
Exemples¶
Cette section contient des exemples dâ UDFs JavaScript scalaires.
Récursivité¶
Cet exemple montre quâune UDF JavaScript peut sâappeler elle-mĂȘme (câest-Ă -dire quâelle peut utiliser la rĂ©cursivitĂ©).
Créez un UDF récursif :
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)));
$$
;
Appelez lâUDF rĂ©cursif :
SELECT RECURSION_TEST('ABC');
+-----------------------+
| RECURSION_TEST('ABC') |
|-----------------------|
| A_B_C |
+-----------------------+
Exception personnalisée¶
Cet exemple montre une UDF JavaScript qui lÚve une exception personnalisée.
Créez la fonction :
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;
}
$$;
Créez une table avec des valeurs valides et non valides :
CREATE TABLE employees (ID INTEGER);
INSERT INTO employees (ID) VALUES
(1),
(-1);
Appelez la fonction :
SELECT ID, validate_ID(ID) FROM employees ORDER BY ID;
+----+-------------------------------+
| ID | VALIDATE_ID(ID) |
|----+-------------------------------|
| -1 | Error: ID cannot be negative! |
| 1 | ID validated. |
+----+-------------------------------+