1 package DBIx::Class::Storage::DBI::Oracle;
6 use base qw/DBIx::Class::Storage::DBI/;
11 my $version = eval { $self->_dbh->get_info(18); };
14 my ($major, $minor, $patchlevel) = split(/\./, $version);
17 my $class = $major <= 8
18 ? 'DBIx::Class::Storage::DBI::Oracle::WhereJoins'
19 : 'DBIx::Class::Storage::DBI::Oracle::Generic';
22 eval "require $class";
24 bless $self, $class unless $@;
29 my ($self, $name) = @_;
31 $self->dbh->do("SAVEPOINT $name");
34 # Would've implemented _svp_release here, but Oracle doesn't support it.
37 my ($self, $name) = @_;
39 $self->dbh->do("ROLLBACK TO SAVEPOINT $name")
46 DBIx::Class::Storage::DBI::Oracle - Base class for Oracle driver
50 # In your table classes
51 __PACKAGE__->load_components(qw/Core/);
55 This class simply provides a mechanism for discovering and loading a sub-class
56 for a specific version Oracle backend. It should be transparent to the user.
58 For Oracle major versions <= 8 it loads the ::Oracle::WhereJoins subclass,
59 which unrolls the ANSI join style DBIC normally generates into entries in
60 the WHERE clause for compatibility purposes. To force usage of this version
61 no matter the database version, add
63 __PACKAGE__->storage_type('::DBI::Oracle::WhereJoins');
69 David Jack Olrik C<< <djo@cpan.org> >>
73 You may distribute this code under the same terms as Perl itself.