27.3 Хранимая программа JavaScript
- 27.3.1 Создание и управление хранимыми программами JavaScript
- 27.3.2 Получение информации о хранимых программах JavaScript
- 27.3.3 Поддержка языка хранимых программ JavaScript
- 27.3.4 Типы данных и обработка аргументов хранимых программ JavaScript
- 27.3.5 Хранимая программа JavaScript — информация о сеансе и параметры
- 27.3.6 JavaScript SQL API
- 27.3.7 Использование JavaScript SQL API
- 27.3.8 Использование библиотек JavaScript
- 27.3.9 JavaScript GenAI API
- 27.3.10 Ограничения и ограничения хранимых программ JavaScript
- 27.3.11 Примеры хранимых программ JavaScript
MySQL 9.2 поддерживает хранимые процедуры, написанные на JavaScript, как показано в простом примере ниже:
mysql> CREATE FUNCTION add_nos(arg1 INT, arg2 INT)
-> RETURNS INT LANGUAGE JAVASCRIPT AS
-> $$
$> return arg1 + arg2
$> $$
-> ;
Query OK, 0 rows affected (0.01 sec)
mysql> SELECT add_nos(12,52);
+----------------+
| add_nos(12,52) |
+----------------+
| 64 |
+----------------+
1 row in set (0.00 sec)
Поддержка хранимых процедур JavaScript требует установки компонента Multilingual Engine (MLE). Сведения об установке и настройке компонента MLE см. в разделе 7.5.8 «Компонент Multilingual Engine (MLE)».
Хранимая программа JavaScript может использоваться совместно с другими хранимыми программами, созданными пользователем и встроенными в MySQL (с учетом ограничений, описанных в других разделах этого документа), а также с системными и пользовательскими переменными MySQL. Мы можем увидеть это здесь, используя функцию add_nos(), созданную в предыдущем примере:
mysql> SET @x = 2;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @x;
+------+
| @x |
+------+
| 2 |
+------+
1 row in set (0.00 sec)
mysql> SELECT @@server_id;
+-------------+
| @@server_id |
+-------------+
| 1 |
+-------------+
1 row in set (0.00 sec)
mysql> SELECT add_nos(POW(2,@x), 1);
+-----------------------+
| add_nos(POW(2,@x), 1) |
+-----------------------+
| 5 |
+-----------------------+
1 row in set (0.01 sec)
mysql> SELECT POW(add_nos(@x, @@server_id), add_nos(@x, 1));
+-----------------------------------------------+
| POW(add_nos(@x, @@server_id), add_nos(@x, 1)) |
+-----------------------------------------------+
| 27 |
+-----------------------------------------------+
1 row in set (0.01 sec)
Хранимая процедура JavaScript может вызываться с помощью CALL, как и SQL-хранимые процедуры.
Хранимая программа JavaScript также может принимать значения столбцов в качестве аргументов. Хранимая функция JavaScript может вызываться в любом месте SQL-выражения, где допустимо использование любой другой функции, например, в WHERE, HAVING, ORDER
BY и JOIN-клаузах. Также их можно вызвать внутри тела определения триггера или события, хотя сами определения должны быть написаны на SQL. Примеры некоторых из этих функций можно найти ниже в этом разделе (см. раздел 27.3.11 «Примеры хранимых программ JavaScript»).
© 2025 Oracle
Licensed under the GPLv2 License.