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

При работе с 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!



Copyright © 1997–2024 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 11.09.2024