Как получить возвращаемое значение хранимой процедуры с помощью perl и dbi для сервера sql? может кто-нибудь представить пример.Perl Dbi и хранимые процедуры
ответ
Примеры в DBD :: ODBC t/dir (см. 20SqlServer.t). В основном вы делаете (не полный рабочий пример):
my $output;
my $input = 'fred';
my $sth = $dbh->prepare(q/{ ? = call myproc(?) }/);
$sth->bind_param_inout(1, \$output, 100);
$sth->bind_param(2, $input);
$sth->execute
Теперь $ output должен содержать возвращаемую процедуру. Убедитесь, что вы установили длину в bind_param_inout достаточно (100 выше).
+1 Ваш пример просто решил одну мою проблему. Спасибо – bvr
Спасибо за напоминание о параметрах SQL sproc out так +1. (-: Это не объясняет, как получить возвращаемое значение sproc. –
Я не понимаю, как это не объясняет, как получить возвращаемое значение процедуры. «? =» - это возвращаемое значение, т. Е. если вы должны были закончить процедуру (если возвращать значение из proc поддерживается базой данных) с возвратом XXX, то первым заполнителем является возвращаемое значение. Вышеприведенный пример может быть функцией (которая во всех dbs возвращает значение) и первым заполнителем будет возвращаемое значение. Вам нужно определить, что вы считаете возвращаемым значением с примером. – bohica
Я ответил на это в другой области. http://stackoverflow.com/questions/64200/how-do-i-call-mysql-stored-procedures-from-perl – Nexion