Binding Input and Output Parameters
There is a counterpart method to the
bind_ param( )
method called bind_ param_inout( )
,
which can be used to sneakily return values from the statement.
Typically, this is only useful with stored procedures that take input
parameters and return values. Furthermore, few databases, and even
fewer drivers, support this functionality, so beware.
bind_ param_inout( )
behaves in a similar way to
bind_ param( )
, but uses a
reference
to a
bind value instead of the value itself. This allows the bind value to
be updated with the return value from the statement.
An additional argument stating the maximum length of the value to be
returned must also be specified. If the returned value exceeds this
value, the execute( )
call will fail. Therefore,
if you aren’t sure how large the return value might be, you
should be pessimistic and supply a large value for this parameter.
The only cost of doing so is using more memory than you need to.
A final, optional, argument that can be supplied is that of the
datatype of the bind value. This behavior is identical to datatype
specification in bind_ param( )
.
See the previous section for more details on how to supply values for
this argument.
An Oracle-specific example showing how bind_ param_inout( )
works revolves around the following stored procedure,
which returns the nearest integer values to a given input value:
-- Example stored procedure written in Oracle PL/SQL PROCEDURE ceiling_floor (value IN NUMBER, c OUT ...
Get Programming the Perl DBI now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.