Привязка формального параметра хранимой процедуры (bind_param_inout)

Назначение
 

Метод bind_param_inout выполняет привязку значения указанного формального параметра хранимой процедуры.

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

Пакет

Package Linter::st

Прототип
$rc = $sh- >bind_param_inout($p_num, \$bind_value, $max_len);
Параметр Описание
$p_num Порядковый номер привязываемого параметра. Отсчет начинается с 1
$bind_value Ссылка на переменную, содержащую значение привязываемого параметра
$max_len Минимальный объем памяти, выделяемый для размещения значения выходного привязываемого параметра
Возвращаемые значения
Переменная Описание
$rc:  
1 Нормальное завершение
0 Ошибка выполнения метода
$DBI::errstr Диагностическое сообщение (в случае ошибки)
Пример
my $a_val = 5;
my $b_val = 10;
my $c_val = 20;
my $dbh = $drh - > connect("DEMO", "SYSTEM", "MANAGER8")
        or die "Could not connect to database: " . DBI- >errstr;
$dbh- >do("create procedure TEST_PROC (in a int; inout b int; inout c int)
          result int code b := a; c := a + b; return c; end;");
my $sth = $dbh- >prepare("execute TEST_PROC(?, ?, ?);");
$sth- >bind_param(1, $a_val);
$sth- >bind_param_inout(2, \$b_val, 4); #4 bytes for int type
$sth- >bind_param_inout(3, \$c_val, 4); #4 bytes for int type
$sth- >execute();
print("a = $a_val\n");
print("b = $b_val\n");
print("c = $c_val\n");
$dbh- >do("drop procedure TEST_PROC;");
$sth- >finish();
$dbh- >disconnect();