Stored Procedures

Adaptive Server Enterprise database driver for Perl supports stored procedures with input and output parameters.

If the stored procedure returns data using output parameters, you must declare them first:
$sth = $dbh->prepare(qq[ declare \
  @name varchar(50) exec getname abcd, \
  @name output
]);

Stored procedures cannot be called with bound parameters:

Illegal:

$sth = $dbh->prepare("exec my_proc ?");
$sth->execute('foo');

Correct:

$sth = $dbh->prepare("exec my_proc 'foo'");
$sth->execute('foo');

Because Sybase stored procedures almost always return more than one result set, make sure to use a loop until syb_more_results is 0:

do {
  while($data = $sth->fetch) {
    do something useful...
  }
} while($sth->{syb_more_results});