スカラー JavaScript UDFs¶
このトピックでは、スカラー JavaScript UDFs (ユーザー定義関数)について説明します。
このトピックの内容:
紹介¶
スカラー JavaScript UDF 関数は、入力行ごとに1つの出力行を返します。出力行には、1つの列/値のみを含める必要があります。
基本的な例は JavaScript UDFs の紹介 にあります。追加の例を以下に示します。
注釈
スカラー関数(UDFs)には、入力引数に500個の制限があります。
例¶
このセクションには、スカラー JavaScript UDFs の例が含まれています。
再帰¶
次の例は、 JavaScript UDF が自分自身を呼び出すことができることを示しています(つまり、再帰の使用可能)。
再帰的な 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)));
$$
;
再帰的な UDFを呼び出します。
SELECT RECURSION_TEST('ABC');
+-----------------------+
| RECURSION_TEST('ABC') |
|-----------------------|
| A_B_C |
+-----------------------+
カスタム例外¶
次の例は、カスタム例外をスローする JavaScript UDF を示しています。
関数を作成します。
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;
}
$$;
有効な値と無効な値を持つテーブルを作成します。
CREATE TABLE employees (ID INTEGER);
INSERT INTO employees (ID) VALUES
(1),
(-1);
関数を呼び出すには、
SELECT ID, validate_ID(ID) FROM employees ORDER BY ID;
+----+-------------------------------+
| ID | VALIDATE_ID(ID) |
|----+-------------------------------|
| -1 | Error: ID cannot be negative! |
| 1 | ID validated. |
+----+-------------------------------+
トラブルシューティング¶
JavaScript UDFs のトラブルシューティング をご参照ください。