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.
use DBIx::Fun 'fun';
print fun($dbh)->sysdate, "\n";
sleep 60;
# function signature cached in $dbh
print 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.
use DBIx::Fun 'auto';
print $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.