Spec-Zone.ru › MySQL 9.2

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.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/stored-routines-js.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API