5.2.4. Синтаксис команды CALLCALL sp_name([parameter[,…]])
5.2.4. Синтаксис команды CALLCALL sp_name([parameter[,…]])
Инструкция CALL вызывает процедуру, которая была определена предварительно, с помощью команды CREATE PROCEDURE.
CALL может передавать обратно значения к параметрам использования вызывающего оператора, которые объявлены как OUT или INOUT. Это также вернет число строк, на которые воздействовал запрос, это же значение программа пользователя может получать в уровне SQL, вызывая функцию ROW_COUNT() или из C API функцией mysql_affected_rows().
Чтобы вернуть значение из процедуры, использующей параметр OUT или INOUT, передайте параметр посредством переменной пользователя, и затем проверьте значение переменной после возврата из процедуры. Если Вы вызываете процедуру изнутри другой сохраненной процедуры или функции, Вы можете также передавать стандартный параметр или локальную стандартную переменную как параметр IN или INOUT. Для параметра INOUT инициализируйте значение перед его передачей процедуре. Следующая процедура имеет параметр OUT, который процедура устанавливает в текущую (актуальную) версию сервера, и значение INOUT, которое процедура увеличивает:
CREATE PROCEDURE p (OUT ver_param VARCHAR(25), INOUT incr_param INT)
BEGIN
# Set value of OUT parameter
SELECT VERSION() INTO ver_param;
# Increment value of INOUT parameter
SET incr_param = incr_param + 1;
END;
Перед вызовом процедуры, инициализируйте переменную, которая будет передана как параметр INOUT. После вызова процедуры, значения в двух переменных будут установлены или изменены:
mysql> SET @increment = 10;
mysql> CALL p(@version, @increment);
mysql> SELECT @version, @increment;
+------------+------------+
| @version | @increment |
+------------+------------+
| 5.0.25-log | 11 |
+------------+------------+
Если Вы пишете программы на C, которые выполняют сохраненные процедуры с инструкцией SQL CALL, Вы должны установить флажок CLIENT_MULTI_RESULTS, когда Вы вызываете mysql_real_connect(), либо установить CLIENT_MULTI_STATEMENTS. Это потому, что каждый CALL возвращает результат, чтобы указать состояние обращения, в дополнение к любым наборам результатов, которые могли бы быть возвращены инструкциями, выполненными внутри процедуры. Чтобы обрабатывать результат инструкции CALL, используйте цикл, который вызывает mysql_next_result() чтобы определить, имеется ли большее количество результатов.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
7.2. Синтаксис CSS
7.2. Синтаксис CSS Теперь, когда вы имеете представление о том, как можно добавить таблицу стилей в HTML-документ, разберем синтаксис языка
Сокращенный синтаксис
Сокращенный синтаксис Для образцов существует два правила сокращения осей:• child::childname может быть сокращено как childname;• attribute::childname может быть сокращено как @childname.В следующем списке перечислен ряд примеров образцов с сокращенным синтаксисом; в конце главы вы увидите
7.4.3 Сообщение Parameter Problem
7.4.3 Сообщение Parameter Problem ICMP-сообщение Parameter Problem используется для отчета об ошибках, не специфицированных в кодах других сообщений. Например, в полях вариантов может появиться неверная информация, не позволяющая правильно обработать датаграмму, в результате чего
23.2.4 Parameter Problem
23.2.4 Parameter Problem Сообщение Parameter Problem (проблема с параметрами) отправляет система, которая не может обработать пакет из-за одного из полей заголовка. Коды сообщения:0 Неправильное количество полей заголовка1 Нераспознанный тип в поле Next Header2 Нераспознанный вариант IPv6Формат
51. Синтаксис Active X
51. Синтаксис Active X Для органов управления ActiveX попускать кавычки нельзя.CODEBASE = URLВ данном атрибуте пишется URL-адрес файла, который содержит вызываемый орган управления и доступный для получения с одного из серверов Интернета.CODETYPE = MIME-тип, TYPE = MIME-типДанные два
4.1. Синтаксис и семантика
4.1. Синтаксис и семантика Прежде чем двигаться дальше, введем базовые определения. Языком мы будем называть множество строк (в большинстве случаев это будет бесконечное множество). Каждое выражение (в некоторых источниках вместо "выражение" употребляются термины
5.2.6. Синтаксис DECLARE
5.2.6. Синтаксис DECLARE Инструкция DECLARE используется, чтобы определить различные элементы, локальные для подпрограммы:Локальные переменные. Подробности в разделе "5.2.7. Переменные в сохраненных подпрограммах".Условия и драйверы. Подробности в разделе "5.2.8. Условия и драйверы
Синтаксис
Синтаксис Синтаксис функции EXTRACT():EXTRACT (элемент FROM поле)элемент должен быть одним из допустимых элементов в типе данных поле. Не все элементы допустимы для всех типов данных дата/время. Тип данных элемента изменяется в соответствии с выделяемым элементом. Табл. 10.10
Синтаксис
Синтаксис Если, будучи соединенным с базой данных, вы захотите ее удалить, используйте для этого оператор:DROP DATABASE;После удаления база данных не может быть восстановлена, следовательно:* будьте уверены, что вы действительно хотите, чтобы она была потеряна навсегда;*
Синтаксис
Синтаксис Для всех версий Firebird синтаксис CREATE TRIGGER одинаков:CREATE TRIGGER имя FOR {таблица | просмотр}[ACTIVE | INACTIVE]{BEFORE | AFTER} {DELETE | INSERT | UPDATE}[POSITION число]AS <тело-триггера> ^<тело-триггера> = [<список-объявления-переменных>] <блок><список-объявления-переменных> = DECLARE VARIABLE
Синтаксис цикла
Синтаксис цикла Синтаксис цикла непосредственно следует из предшествующих соображений, определяющих ингредиенты цикла. Он будет включать элементы, отмеченные как необходимые.[x]. Инвариант цикла inv - утверждение.[x]. Условие выхода exit, чья конъюнкция с inv дает желаемую
48. Синтаксис ассемблера
48. Синтаксис ассемблера Предложения, составляющие программу, могут представлять собой синтаксическую конструкцию, соответствующую команде, макрокоманде, директиве или комментарию. Для того чтобы транслятор ассемблера мог распознать их, они должны формироваться по