Привязка формального параметра хранимой процедуры (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();