DBIx::Connection::Oracle::PLSQL - PLSQL block handler


DBIx-Connection documentation Contained in the DBIx-Connection distribution.

Index


Code Index:

NAME

Top

DBIx::Connection::Oracle::PLSQL - PLSQL block handler

SYNOPSIS

Top

    use DBIx::PLSQLHandler;

    my $plsql_handler = new DBIx::PLSQLHandler(
        name        => 'test_proc',
        connection  => $connection,
        plsql       => "
        DECLARE
        var1 INT;
        BEGIN
        var1 := :var2 + :var3;
        END;",
    );
    $plsql_handler->execute(var2 => 12, var3 => 8);

    or

    use DBIx::Connection;




    my $plsql_handler = $connection->plsql_handler(
        name        => 'test_proc',
        connection  => $connection,
        plsql       => "
        DECLARE
        var1 INT;
        BEGIN
        :var1 := :var2 + :var3;
        END;",
    );

    my $result_set = $plsql_handler->execute(var2 => 12, var3 => 8);




methods

prepare

Prepares plsql cursor

execute
bind_parameters

COPYRIGHT AND LICENSE

Top

AUTHOR

Top

Adrian Witas, adrian@webapp.strefa.pl

See also DBIx::Connection DBIx::QueryCursor DBIx::SQLHandler.


DBIx-Connection documentation Contained in the DBIx-Connection distribution.
package DBIx::Connection::Oracle::PLSQL;

use warnings;
use strict;

use Abstract::Meta::Class ':all';
use Carp 'confess';
use base qw(DBIx::PLSQLHandler);

use vars qw($VERSION);

$VERSION = 0.02;


sub prepare {
    my ($self) = @_;
    $self->set_sql($self->plsql);
    $self->SUPER::prepare();
}



sub execute {
    my $self = shift;
    my $result_set = $self->bind_parameters(@_);
    $self->SUPER::execute();
    $result_set;
}


sub bind_parameters {
    my ($self, %bind_parameters) = @_;
    my $bind_variables = $self->bind_variables;
    my @bind_in_variables = $self->bind_in_variables;
    my %bind_params = (map {$_ => $bind_parameters{$_}} @bind_in_variables);
    my @binded_out_variables = $self->binded_out_variables;
    my %bind_params_inout = (map {$_ => $bind_parameters{$_}} @binded_out_variables);
    $self->bind_params(\%bind_params);
    $self->bind_params_inout(\%bind_params_inout);
    \%bind_params_inout;
}

__END__

1;