Приложение 7. SQL сервера, работа с IN/OUT переменными [3.1.4]

При работе с SQL сервером Oracle поддерживается работа со связанными переменными (bind variables), поддерживаются IN, OUT и IN/OUT переменные, которые связываются с передаваемым в запрос хешем.

При прямом использовании конструкций
CALL и EXECUTE в некоторых версиях Oracle имеются известные проблемы, рекомендуем пользоваться PL/SQL оберткой (begin …; end;), не забывайте экранировать знак «;».

Примечание: значение типа
void соответствует NULL. Во втором примере days имеет начальное значение NULL.

Пример использования IN переменных

#procedure ban_user(user_id in number, days in number)


^void:sql{
begin ban_user(:user_id, :days)^; end^;}[
    $.bind[
        $.user_id(7319)
        $.days(10)
    ]
]

Пример использования IN и OUT переменных

#procedure read_user_ban_days(user_id in number, days out number)


$variables[
    $.user_id(7319)
#несмотря на то, что параметр OUT, все равно необходимо его передать
#его текущее значение будет проигнорировано
    $.days[]
]

^void:sql{
begin read_user_ban_days(:user_id, :days)^; end^;}[
    $.bind[$variables]
]

Пользователь выключен на
 $variables.days!



In order to add comments you must register.
Copyright © 1997–2017 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 20.09.2007