use strict; use lib qw(t/lib); use dbixcsl_common_tests; my $dsn = $ENV{DBICTEST_ORA_DSN} || ''; my $user = $ENV{DBICTEST_ORA_USER} || ''; my $password = $ENV{DBICTEST_ORA_PASS} || ''; my $tester = dbixcsl_common_tests->new( vendor => 'Oracle', auto_inc_pk => 'INTEGER NOT NULL PRIMARY KEY', auto_inc_cb => sub { my ($table, $col) = @_; return ( qq{ CREATE SEQUENCE ${table}_${col}_seq START WITH 1 INCREMENT BY 1}, qq{ CREATE OR REPLACE TRIGGER ${table}_${col}_trigger BEFORE INSERT ON ${table} FOR EACH ROW BEGIN SELECT ${table}_${col}_seq.nextval INTO :NEW.${col} FROM dual; END; } ); }, auto_inc_drop_cb => sub { my ($table, $col) = @_; return qq{ DROP SEQUENCE ${table}_${col}_seq }; }, dsn => $dsn, user => $user, password => $password, ); if( !$dsn || !$user ) { $tester->skip_tests('You need to set the DBICTEST_ORA_DSN, _USER, and _PASS environment variables'); } else { $tester->run_tests(); }