SPOPS::Import::DBI::TableTransform::Oracle - Table transformations for Oracle


SPOPS documentation Contained in the SPOPS distribution.

Index


Code Index:

NAME

Top

SPOPS::Import::DBI::TableTransform::Oracle - Table transformations for Oracle

SYNOPSIS

Top

 my $table = qq/
   CREATE TABLE blah ( id %%INCREMENT%% primary key,
                       name varchar(50) )
 /;
 my $transformer = SPOPS::Import::DBI::TableTransform->new( 'oracle' );
 $transformer->increment( \$table );
 print $table;

 # Output:
 # CREATE TABLE blah ( id INT NOT NULL primary key,
 #                     name varchar(50) )

DESCRIPTION

Top

Oracle-specific type conversions for the auto-increment and other field types.

METHODS

Top

increment

Returns 'INT NOT NULL'

increment_type

Returns 'INT'

datetime

Returns 'DATE'

BUGS

Top

None known.

TO DO

Top

Add hook for extra statement

Since Oracle supports a sequence-based increment type, think about adding a hook for an extra statement to be registered.

SEE ALSO

Top

SPOPS::Import::DBI::TableTransform

COPYRIGHT

Top

AUTHORS

Top

Chris Winters <chris@cwinters.com>


SPOPS documentation Contained in the SPOPS distribution.

package SPOPS::Import::DBI::TableTransform::Oracle;

# $Id: Oracle.pm,v 3.4 2004/06/02 00:48:23 lachoy Exp $

use strict;
use base qw( SPOPS::Import::DBI::TableTransform );

$SPOPS::Import::DBI::TableTransform::Oracle::VERSION  = sprintf("%d.%02d", q$Revision: 3.4 $ =~ /(\d+)\.(\d+)/);

sub increment {
    my ( $self, $sql ) = @_;
    $$sql =~ s/%%INCREMENT%%/INT NOT NULL/g;

# TODO: Think about doing something here like:
    #my ( $table_name ) = $$sql =~ /create\s+table\s+(\w+)\s*/;
    #$self->add_extra_statement( "CREATE SEQUENCE ${table_name}_id_seq" );
}

sub increment_type {
    my ( $self, $sql ) = @_;
    $$sql =~ s/%%INCREMENT_TYPE%%/INT/g;
}

sub datetime {
    my ( $self, $sql ) = @_;
    $$sql =~ s/%%DATETIME%%/DATE/g;
}

1;

__END__