Spec-Zone.ru › MySQL 9.2

27.3.7 Использование JavaScript SQL API

  • 27.3.7.1 Простые операторы
  • 27.3.7.2 Подготовленные операторы
  • 27.3.7.3 Работа с данными и метаданными

В этом разделе обсуждается использование API для выполнения и получения и обработки результатов как простых SQL-операторов, так и подготовленных операторов. Выполнение SQL на JavaScript доступно только в хранимых процедурах, а не в хранимых функциях.

SQL API поддерживает два типа операторов: простые SQL-операторы (см. Раздел 27.3.7.1, «Простые операторы») и подготовленные операторы (Раздел 27.3.7.2, «Подготовленные операторы»). Подготовленные операторы поддерживают связанные параметры; простые операторы — нет.

Максимальное количество простых операторов, которые могут быть открыты одновременно для выполнения хранимых процедур в заданной сессии, равно 1024. Это число фиксировано и не может быть изменено пользователем. Попытка выполнить больше простых операторов, чем это число, одновременно приводит к ошибке. Подготовленные операторы, выполняемые на JavaScript, учитываются в глобальном лимите, определяемом max_prepared_stmt_count; для получения дополнительной информации см. описание этой переменной.

Результирующий набор, возвращаемый SQL-оператором, буферизуется в памяти. Для простого оператора размер (всего) набора результатов ограничен 1 МБ; для подготовленного оператора любой отдельный ряд может использовать до 1 МБ. В любом случае превышение лимита приводит к ошибке.

Независимо от типа оператора доступны два механизма для потребления результатов. Результирующий набор можно обработать внутри JavaScript или передать напрямую клиенту. Дополнительную информацию см. в Наборах результатов.

Вы также можете получить доступ к данным сессии, таким как временные таблицы, переменные сессии и состояние транзакции. Переменные сессии, объявленные вне хранимых процедур, могут быть доступны внутри хранимых процедур; то же самое относится и к временным таблицам. Кроме того, транзакция, начатая вне хранимой процедуры, может быть подтверждена внутри нее.

Оператор, генерирующий набор результатов, содержащий недопустимые типы данных, приводит к ошибке недопустимого типа. Например, операторы, связанные с DESCRIBE, EXPLAIN или ANALYZE TABLE, затронуты этим ограничением, как показано здесь:

mysql> CALL jssp_simple("DESCRIBE t1");
ERROR 6113 (HY000): JavaScript> Unsupported type BLOB/TEXT for 'Type'
mysql> SHOW WARNINGS;
+-------+------+---------------------------------------------------+
| Level | Code | Message                                           |
+-------+------+---------------------------------------------------+
| Error | 6113 | JavaScript> Unsupported type BLOB/TEXT for 'Type' |
+-------+------+---------------------------------------------------+
1 row in set (0.00 sec)

Установка локальной переменной JavaScript из SQL-оператора внутри хранимой процедуры не поддерживается.

API также поддерживает несколько наборов результатов, например, при вызове одной хранимой процедуры другой. Многострочные запросы не поддерживаются и приводят к синтаксической ошибке.

Некоторые примеры в этом разделе основаны на базе данных world, доступной на веб-сайте MySQL MySQL web site. Для получения помощи по установке базы данных из загружаемого файла см. Раздел 6.5.1.5, «Выполнение SQL-операторов из текстового файла».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/srjs-api-using.html

Spec-Zone.ru

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