ОПРЕДЕЛЕНИЕ КЕРСОРА
Синтаксис
<= MariaDB 10.2
DECLARE cursor_name CURSOR FOR select_statement
DECLARE cursor_name CURSOR [(cursor_formal_parameter[,...])] FOR select_statement
cursor_formal_parameter:
name type [collate clause]
DECLARE cursor_name CURSOR [(cursor_formal_parameter[,...])] FOR select_statement
cursor_formal_parameter:
[IN] name type [collate clause]
Описание
Это оператор, объявляющий керсор. В хранимой процедуре могут быть объявлены несколько керсоров, но каждый керсор в данном блоке должен иметь уникальное имя.
select_statement выполняется только после выполнения оператора OPEN. Необходимо помнить об этом, если запрос вызовет ошибку или вызовет функции со побочными эффектами.
SELECT связанный с керсором может использовать переменные, но сам запрос не может быть переменной и не может быть динамически составлен. Оператор SELECT не может иметь INTO оператор.
Керсоры должны быть объявлены до HANDLER, но после локальных переменных и CONDITION.
Параметры
Начиная с MariaDB 10.3.0, керсоры могут иметь параметры. Это нестандартное расширение SQL. Параметры керсора могут появиться в любой части оператора DECLARE CURSOR select_statement, где разрешена переменная хранимой процедуры (список выбора, WHERE, HAVING, LIMIT и т. д.).
IN
Начиная с предварительной версии MariaDB 10.8.0, квалификатор IN поддерживается в части синтаксиса cursor_format_parameter.
См. Обзор керсоров для примера.
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/declare-cursor/