1use strict; 2use lib qw(t/lib); 3use dbixcsl_common_tests; 4use Test::More; 5use Test::Exception; 6 7my $dsn = $ENV{DBICTEST_ORA_DSN} || ''; 8my $user = $ENV{DBICTEST_ORA_USER} || ''; 9my $password = $ENV{DBICTEST_ORA_PASS} || ''; 10 11my $tester = dbixcsl_common_tests->new( 12 vendor => 'Oracle', 13 auto_inc_pk => 'INTEGER NOT NULL PRIMARY KEY', 14 auto_inc_cb => sub { 15 my ($table, $col) = @_; 16 return ( 17 qq{ CREATE SEQUENCE ${table}_${col}_seq START WITH 1 INCREMENT BY 1}, 18 qq{ 19 CREATE OR REPLACE TRIGGER ${table}_${col}_trigger 20 BEFORE INSERT ON ${table} 21 FOR EACH ROW 22 BEGIN 23 SELECT ${table}_${col}_seq.nextval INTO :NEW.${col} FROM dual; 24 END; 25 } 26 ); 27 }, 28 auto_inc_drop_cb => sub { 29 my ($table, $col) = @_; 30 return qq{ DROP SEQUENCE ${table}_${col}_seq }; 31 }, 32 dsn => $dsn, 33 user => $user, 34 password => $password, 35); 36 37if( !$dsn || !$user ) { 38 $tester->skip_tests('You need to set the DBICTEST_ORA_DSN, _USER, and _PASS environment variables'); 39} 40else { 41 $tester->run_tests(); 42} 43