NAME
DBIx::Fun - access database stored procedures as methods
SYNOPSIS
use
DBI;
use
DBIx::Fun;
my
$dbh
= DBI->
connect
(
'dbi:Oracle:orcl'
,
'scott'
,
'tiger'
);
my
$fun
= DBIx::Fun->context(
$dbh
);
# print 5 random numbers from the database
$fun
->dbms_random->initialize( 123 );
for
my
$i
( 1 .. 5 ) {
printf
"%d %d\n"
,
$i
,
$fun
->dbms_random->random;
}
$fun
->dbms_random->terminate;
$dbh
->disconnect;
DESCRIPTION
This module allow Perl programs to access database stored procedures as if they were methods on an object.
CONSTRUCTORS
context( $dbh )
Creates a DBI::Fun
subclass matching the driver of $dbh, e.g., DBD::Oracle => DBIx::Fun::Oracle.
# call as a class method
my
$fun
= DBIx::Fun->context(
$dbh
);
Privately used as an object method to create child contexts.
fun( $dbh )
Returns a context for $dbh, cached in $dbh. Exportable as a function.
fun(
$dbh
)->sysdate,
"\n"
;
sleep
60;
# function signature cached in $dbh
fun(
$dbh
)->sysdate,
"\n"
;
auto
Not an actual function. Importing 'auto' will load fun() into the DBI::db package, exposing it as a method on database handles.
$dbh
->fun->sysdate,
"\n"
;
METHODS
dbh
Accessor for the underlying database handle.
commit, rollback, disconnect
Convenience methods on the underlying database handle.
PRIVATE METHODS
_call($name, [ @args ] )
Call stored proc $name
with arguments @args.
$fun->_call()
can be used to call a stored procedure that contains characters not allowed in a Perl identifier, or that clashes with a method defined in Perl.